miseleigh Posted January 18, 2008 Share Posted January 18, 2008 We're using php to run batch files that create an ssh connection (using PuTTY) into routers and run various commands on those routers. At least, that's what we're trying to do, but somewhere along the way the commands for the router get partially lost. The code that creates & executes the batch file: $cmd.="$cmd="set PATH=D:\Program Files\PuTTY;%PATH%\r\n"; plink $rt -ssh -l $un -pw $pw < $script\r\n"; //plink is the putty connect command //$rt is the router's ip, $script is a file holding the ssh commands for the router $bat=$folder."putty.bat"; $fp=fopen($bat, 'w'); fwrite ($fp, $cmd); fclose ($fp); exec ($bat." >> ".$out); The batch file is exactly what we need it to be, and works well when you double-click it. However, when run through exec... basically, the first half of the router commands in the $script file get cut out. The .bat file (which works perfectly on it's own, btw): ($bat, above) set PATH=D:\Program Files\PuTTY;%PATH% plink ipaddress -ssh -l username -pw password < routerfile.txt And then routerfile.txt: enable config remote configuration radius interval 43200 end end quit And the output (from the $out file in the exec command): prompt>set PATH=path prompt>plink ipaddress -ssh -l username -pw password 0<C:/OpenSA/Apache2/MMW_Includes/SSH/interval720.txt ation radius interval 43200 end end quit MSC-3200 V. 3.1.1.5-03-4687 © 2005 Colubris Networks Inc. CLI> ation radius % Unknown command. CLI> interval 43200 % Unknown command. CLI> end % Unknown command. CLI> end % Unknown command. CLI> quit (where CLI> is the router's prompt.) As you can see, the router isn't receiving "enable config remote configur" when it should, but again this is only when we run the batch file through exec. I've also tried using system instead of exec, with the same results. The only things I've been able to think that might do this would be overrunning a buffer somewhere, or maybe it's not waiting for the router's prompt before it starts sending commands, or there's an Apache or PHP configuration issue. I would love some help if anyone knows what's going on here, or at least has some suggestions for where to look. Thanks. Quote Link to comment https://forums.phpfreaks.com/topic/86693-exec-appears-to-chop-up-the-commands-i-give-it-formattingsyntaxbuffer-error/ Share on other sites More sharing options...
miseleigh Posted January 18, 2008 Author Share Posted January 18, 2008 Also, just doing echo exec($bat); instead of piping it to a file results in prompt>plink ipaddress -ssh -l username -pw password 0 Shouldn't it have "< routerfile.txt" instead of that 0? How well does exec handle piping within a batch file? Quote Link to comment https://forums.phpfreaks.com/topic/86693-exec-appears-to-chop-up-the-commands-i-give-it-formattingsyntaxbuffer-error/#findComment-443058 Share on other sites More sharing options...
miseleigh Posted January 19, 2008 Author Share Posted January 19, 2008 Yet another update... this is really bugging me now. exec is partly working, but not fully. Doing an exec command on a process like solitaire or calculator does create a process, but the window won't pop up - it seems to get hung right after the process is started but before it really gets going. It's probably not a php issue like I thought it was, but I'm still hoping someone here can help because I really don't know where else to go. We've been working on this for a few days now and haven't gotten anywhere. Thanks for any help/advice you can offer. Quote Link to comment https://forums.phpfreaks.com/topic/86693-exec-appears-to-chop-up-the-commands-i-give-it-formattingsyntaxbuffer-error/#findComment-443128 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.