我试图实现与一个bash脚本如下:远程SSH和命令执行使用bash和期待
- 拉升SSH连接,如果失败,错误出如果SSH连接是
- 一旦确认中,执行“顶部”命令,并将结果保存到从远程服务器
我知道invidiual命令,这将是文件
ssh -q [email protected] exit
echo $?
这应该成功返回 '0' 和 '255' 的错误。
2)执行顶部并保存到文件将是:
top -n 1 -b > /tmp/top.out
3)从远程主机scp将文件
expect -c "
set timeout 1
spawn scp [email protected]:/tmp/top.out [email protected]:/.
expect yes/no { send yes\r ; exp_continue }
expect password: { send password\r }
expect 100%
sleep 1
exit
"
下面把这个完全是我的问题,更具体:
当使用期望tes时,我似乎无法得到返回的'0'和'255'值t SCP连接。
- 我似乎无法能够再次使用预期来执行top命令,即这不起作用:
期待-c“ 设定超时1个 产卵SSH用户@主机顶部-n 3 -b> /tmp/top.out 期望密码:{发送密码\ R} 睡眠1个 出口 “
- 并且因此第三位不会活像k也是。
任何帮助表示赞赏。请记住,我的脚本是一个.sh脚本,其中#!/ bin/bash声明 - 由于各种原因,我不能使用#!/ usr/bin/expect。
如果您拥有源代码发行版或系统的expect-dev软件包,您应该具有自动预期功能。您可能希望交互式运行命令,并查看autoexepect认为对话应该是什么样子。 –
这就是它的样子,它的设置是在我的公司,这不是我的错,所以我只是想充分利用它 – Tamas