Expect Script through Putty 有效,但在通过 http 执行的脚本调用时无效
Expect Script through Putty works but not when called by scripts executed via http
我有一个 expect 脚本连接到我们的远程服务器之一,它 运行 以管理员身份执行一些命令然后退出。当我通过 Putty CLI 运行 脚本时,它可以正常工作。但是,当我通过 http 调用脚本时它失败了,脚本没有提供有效数据。 (下)
我一直在努力解决这个问题,并将其分解为最基本的级别以排除所有问题:
I 运行 test.php 调用 expect 脚本:
echo shell_exec("expect bwvtr.exp HOST USER PASS CLIUSER CLIPASS SOURCE DEST");
并且当 运行 通过 putty(ssh 连接到管理服务器)时,它连接到网络服务器并正常运行。
======================================================================
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;
- 我试过在超时后发送下一个命令,但这也不起作用。脚本发送 \003 (Ctrl+c) 以正常退出。
- 我已经将本地服务器 ssh 设置更改为不发送任何环境变量。 Putty 仍然有效,http 仍然失败。
- 我已经通过 ssh -v 比较了 SSH 会话,它们是相同的。
- 我已将区域设置和语言变量设置为 UTF-8,没有改变。
有人遇到过这个吗?
通过将 stty 列设置为 200 并将行设置为 100,我能够接收输出:
在 spawn ssh 和登录之后,但在任何其他命令之前添加以下内容:
expect "$ "
send "stty cols 200\r"
expect "$ "
send "stty rows 100\r"
我有一个 expect 脚本连接到我们的远程服务器之一,它 运行 以管理员身份执行一些命令然后退出。当我通过 Putty CLI 运行 脚本时,它可以正常工作。但是,当我通过 http 调用脚本时它失败了,脚本没有提供有效数据。 (下)
我一直在努力解决这个问题,并将其分解为最基本的级别以排除所有问题:
I 运行 test.php 调用 expect 脚本:
echo shell_exec("expect bwvtr.exp HOST USER PASS CLIUSER CLIPASS SOURCE DEST");
并且当 运行 通过 putty(ssh 连接到管理服务器)时,它连接到网络服务器并正常运行。
======================================================================
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;
- 我试过在超时后发送下一个命令,但这也不起作用。脚本发送 \003 (Ctrl+c) 以正常退出。
- 我已经将本地服务器 ssh 设置更改为不发送任何环境变量。 Putty 仍然有效,http 仍然失败。
- 我已经通过 ssh -v 比较了 SSH 会话,它们是相同的。
- 我已将区域设置和语言变量设置为 UTF-8,没有改变。
有人遇到过这个吗?
通过将 stty 列设置为 200 并将行设置为 100,我能够接收输出:
在 spawn ssh 和登录之后,但在任何其他命令之前添加以下内容:
expect "$ "
send "stty cols 200\r"
expect "$ "
send "stty rows 100\r"