我有一个期望脚本连接到我们的一个远程服务器,它以管理员身份运行一些命令然后退出。当我通过Putty CLI运行脚本时,它可以正常工作。但是,当我通过http调用脚本失败时,脚本不会显示有效数据。 (下)
我一直在努力解决这个问题,并将其分解为最基本的水平来排除一切:
我运行调用expect脚本的test.php:
echo shell_exec("expect bwvtr.exp HOST USER PASS CLIUSER CLIPASS SOURCE DEST");
当通过putty运行时(ssh' d到管理服务器),它连接到网络服务器并正常运行。
======================================================================
BroadWorks Command Line Interface
Type HELP for more information
======================================================================
Reading initial CLI command file...
NS_CLI> l CLIUSER
Password:
Administrator,Administrator logging in...
NS_CLI> vtr +1SOURCE DEST
然而,当我从网络主机调用脚本时,我得到了
======================================================================
BroadWorks Command Line Interface
Type HELP for more information
======================================================================
Reading initial CLI command file...
[?1h
[?1l[?1h
[?1l[?1h
[?1l[?1h
[?1lExiting the CLI ...
[?1l]0;
有没有人遇到过这个?
答案 0 :(得分:0)
通过将stty cols设置为200并将行设置为100,我能够接收输出:
在spawn ssh和login之后,但在任何其他命令之前添加以下内容:
expect "$ "
send "stty cols 200\r"
expect "$ "
send "stty rows 100\r"