Expect远程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
   }
}

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuyunshengsir

微信:lys20191020

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值