使用expect脚本实现远程交互操作

#scp.exp
#!/usr/bin/expect
set route [lindex $argv 0]
set password 123456
spawn scp $route Lyndon@172.16.12.4:/home/Lyndon/trunk/
set timeout 300
expect "Lyndon@172.16.12.4's password:"
set timeout 300
send "$password\r"
set timeout 300
send "exit\r"
expect eof

使用[lindex $argv 0]获取shell终端输入,该脚本实现功能为将本地路径“route"下的文件远程拷贝到4号服务器

执行方法为:

./scp.exp ./a.txt  即可将a.txt文件远程拷贝到4号服务器上

 

 该脚本ssh自动连接到4号服务器,并执行命令 之后退出4号服务器

#start.exp
#!/usr/bin/expect -f
set command [lindex $argv 0]
set password 123456
set timeout 300
#4
spawn ssh -t Lyndon@172.16.12.4
expect "Lyndon@172.16.12.4's password:"
send "$password\r"
expect "a"
send "cd /home/Lyndon/trunk/\r"
send "./$command\r"
send  "exit\r"
expect eof

通过终端输入了一个脚本名,首先ssh到4号服务器,之后cd到指定目录,最后执行脚本,退出4号服务器。

当然可以在脚本中实现一个循环,这样就可以远程操作多台机器。

参考链接:

https://linux.die.net/man/1/expect

http://xstarcd.github.io/wiki/shell/expect_description.html

转载于:https://www.cnblogs.com/LyndonYoung/articles/7326289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值