如何使用Expect从一台计算机登录到另一台计算机时运行命令

阿比耶特·帕塔克

我想编写一个Expect脚本,该脚本应首先登录到Linux机器m1,然后在m1内应登录到机器m2。然后在m2中,我必须运行一些命令。

我尝试使用以下脚本,但是在这里此期望脚本仅运行命令“ spawn ssh -X root @ $ m2”。然后,它将终止,而无需运行命令cmd1和cmd2。

/usr/bin/expect <<EOF

set timeout -1

spawn ssh -X root@$m1
expect "assword:"
send  "m1Password\r"
expect "#"

spawn ssh -X root@$m2
#Not given password here because the second machine doesn't ask for a password when logged in via m1.

send "cmd1\r"
expect "Cmd1 Res"
send "cmd2\r"
expect "Cmd2 Res"
EOF

如何改进此脚本,以便此期望脚本可以运行命令cmd1和cmd2?

科林·麦克劳德

您要ssh在已经打开的与机器m1的连接中运行第二个连接,因此您不需要第二个spawn连接,因为这将尝试从本地计算机打开新连接。因此spawn,使用第二个send命令而不是第二个命令,可以在m1上运行ssh命令,然后expect在发送命令之前用于在m2上等待提示:

send "ssh -X root@$m2"
expect "#"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将图像从一台计算机移动到另一台计算机时如何还原grub

在另一台计算机上运行

SSH远程登录到另一台计算机后修复终端标题

如何使用FCM从一台计算机向另一台计算机使用Angular2发送通知

将 Sonarqube 从一台计算机移动到另一台计算机

将特定目录从一台计算机镜像到另一台计算机?

如何使用Java通过网络将文件从一台计算机传输到另一台计算机?

将备份从一台计算机还原到另一台计算机时的注意事项

从一台计算机创建的项目复制到另一台计算机时,SDK路径问题

如何重现在一台计算机上另一台计算机上运行的命令?

如何从我的计算机的cmd访问另一台计算机的cmd?

如何在Intelliji中将一个项目从一台计算机传输到另一台计算机?

从本地访问另一台计算机

通过另一台计算机供电

如何将postgresql数据库从一台计算机移动到另一台计算机?

如何修复来宾VM从一台计算机移动到另一台计算机的网络连接?

如何将Docker容器从一台计算机迁移到另一台计算机?

如何将单个 git 分支从一台计算机移动到另一台计算机

如何通过网络将块设备从一台计算机安装到另一台计算机作为块设备?

如何将 GnuCash 的数据从一台计算机移动到另一台计算机?

如何导入秘密gpg密钥(从一台计算机复制到另一台计算机)?

如何将本地组策略对象从一台计算机复制到另一台计算机?

如何将自定义 Word 功能区从一台计算机移动到另一台计算机?

TestCafe:如果用户从另一台计算机登录,如何测试注销

MongoDB:使用mongo shell将选定的数据从一台主机/计算机复制到另一台主机/计算机

使用iptables将网络流量从一台计算机转发到另一台计算机

插入另一台计算机时,连接到UPS的计算机暂时失效

一个人如何从另一台计算机运行安装在一台计算机上的程序?

如何获取在另一台计算机上运行的作业的状态?