Linux下expect的使用scp与ssh

expect属于tcl语言,用于实现自动和交互式任务程序语言进行通信,无需人工干预

#!/usr/bin/expect

set file xxx.exe

set dir /home/vtu

set srcfile src_pfu

#set destfile dest_pfu

set vtuname xxx

set tecsname xxx

set VtuPWD xxx

set TecsPWD xxx

set RootPWD xxx

set pf_sc {docker ps|grep pf_sc}

set arrNode {192.168.9.11
             192.168.9.12
             192.168.9.13
             192.168.9.14}
foreach node $arrNode {

set timeout 5                           

spawn scp $dir/$file $vtuname@$node:$dir //spawn新建进程

expect "password:" {send "$VtuPWD\r"}


spawn ssh $tecsname@$node

expect "password:" {send "$TecsPWD\r"}

expect "tecs" {send "sudo -i\r"}

expect "root@tep" {send "$pf_sc\r"}

expect  "k8s" { regexp {[a-z0-9]{12}} $expect_out(buffer) PFUname} //refexp正则表达式匹配,$expect_out(buffer)的值可以通过在调试模式(#!/usr/bin/expect -d)看到

expect "tep-v1-r1-s1" {send "mkdir $dir/$srcfile\r"} //mkdir指定绝对路径,否则目录会建在/root/下

expect "tep-v1-r1-s1" {send "docker cp $PFUname:/home/$file $dir/$srcfile\r"}

expect "root@tep" {send "docker cp $dir/$file $PFUname:/home\r"}

expect "root@tep" {send "rm $dir/$file\r"}     //指定绝对路径,不然找不到

expect "remove" {send "y\r"}

expect "root@tep" {send "docker restart $PFUname\r"}

expect eof        //https://blog.csdn.net/modi000/article/details/107115286
}

链接:
foreach使用:https://blog.csdn.net/ciscomonkey/article/details/118881550
expect脚本中使用expect eof 和使用interact的区别:https://blog.csdn.net/modi000/article/details/107115286
expect命令:https://www.cnblogs.com/lixigang/articles/4849527.html
tcl教程:https://www.yiibai.com/tcl
Linux使用shell脚本实现目录创建与文件传输:https://blog.csdn.net/xi_rurensheng/article/details/111462239?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166158140116782395364984%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166158140116782395364984&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-111462239-null-null.142v42control,185v2control&utm_term=expect%E8%BF%9C%E7%A8%8B%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95%E5%A4%B1%E8%B4%A5&spm=1018.2226.3001.4187
正则表达式:https://www.runoob.com/regexp/regexp-syntax.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值