当前位置:   article > 正文

Expect远程ssh登录主机执行命令_spawn ssh

spawn ssh

Expect是一个命令行工具,它可以自动化交互式任务(如SSH登录、FTP传输等)。

Expect通过模拟用户输入,识别应用程序输出,实现自动化交互式任务的自动化。

以下是一个基本的Expect脚本示例,用于自动登录远程服务器并执行命令:

#!/usr/bin/expect
# 远程服务器信息
set timeout -1
set host "remote_host"
set username "your_username"
set password "your_password"
# 登录到远程服务器
spawn ssh $username@$host
# 等待远程服务器的输出
expect {
   "*password:" {
       # 输入远程服务器的密码
       send "$password\n"
       # 等待登录成功
       expect {
           "*Last login:" {
               # 输入要执行的命令
               send "echo 'Hello, World!'\n"
               # 等待命令输出
               expect eof
           }
       }
   }
   "yes/no" {
       # 接受新的ssh指纹
       send "yes\n"
       exp_continue
   }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

在这个Expect脚本中,你需要将remote_hostyour_usernameyour_password替换为远程服务器的地址、用户名和密码。脚本使用spawn命令连接到远程服务器上的SSH端口,并输入用户名和密码。接下来,脚本等待远程服务器的输出并根据输出执行相应的操作,例如,如果服务器请求你接受新的ssh指纹,脚本会自动接受它,继续等待。最后,脚本输入一个命令并等待其输出。

使用Expect可以自动化执行多种复杂交互式任务,例如,你可以使用Expect编写脚本来自动登录到FTP服务器并上传文件,或者连接到数据库服务器并执行查询。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/699276
推荐阅读
相关标签
  

闽ICP备14008679号