期望三台 Linux 机器之间的脚本 + 自动 telnet 过程

期望三台 Linux 机器之间的脚本 + 自动 telnet 过程

是否可以通过expect脚本执行以下操作?

我有连接到的 Linux 服务器linux_machine1linux_machine1连接到linux_machine2

我的 Linux 服务器只能访问linux_machine1(linux服务器可以telnet到linux_machine1但无法远程登录linux_machine2

但从linux_machine1我可以通过 VIA telnet 访问linux_machine2

所以我的问题是:

我需要开发从 Linux 服务器执行 telnet 的 Expect 脚本linux_machine1

然后期望将执行 telnet 到linux_machine2linux_machine1并将复制/etc/主机文件来自linux_machine2到我的 Linux 服务器

这个场景可以用expect脚本实现吗?

描述该过程的简短示例:

  ( run expect from Linux server ) --> linux_machine1 --> linux_machine2 
  Linux server          <--   /etc/hosts    from linux_machine2 <--
  • 备注 - 期望脚本需要从 Linux 服务器激活

答案1

Linux服务器,运行以下脚本。

不要使用,telnet因为它未加密。您可以使用sshand ,sftp如下所示。

#This part connects to Machine1
#Just change username, password_here and Linux_machine1 to suit your requirement. 

#!/usr/bin/expect -f
spawn telnet -l username linux_machine1
expect "*?assword:*"
send -- "password_here\r"
send -- "\r"
expect eof

#Now we are connected to Linux_Machine1 from where we will connect to Linux_machine2
#Just change username, password_here and Linux_machine2 to suit your requirement. 

spawn ftp username@machine2
expect "*?assword:*"
send -- "password_here\r"
send -- "\r"
expect eof
expect "ftp>"
send -- "get /etc/hosts\r"
expect "ftp>"
send "quit \r"

在您的本地文件夹中Linux服务器/etc/hosts,将出现 的副本。

聚苯乙烯:在本地机器上测试并且工作完美。如果您仍然希望使用 telnet,上面的脚本将告诉您如何操作。您可以根据需要修改 ssh 和 sftp 到 telnet 的连接。

聚苯硫醚:如果您能用砖块或赞美来回复我,我将非常感激,因为我花了半个小时来准备这个脚本:)好吧,不是半小时,但绝对是 15 分钟:)

相关内容