关于expect使用ssh的问题

本文介绍了一个使用SSH进行远程服务器文件备份的shell脚本。该脚本通过expect工具自动化处理SSH连接过程中的交互操作,包括确认连接和输入密码等步骤,并实现tar压缩及scp传输备份文件到另一台服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 spawn bash -c "ssh -t root@$argv"
expect "* (yes/no)*"
send "yes/r"
expect -timeout 1
expect "* password:*"
send "123456/r"
expect -timeout 5
send "export DATE=`date +%F-%R`/r"
expect -timeout 1
send "export IP=`ifconfig |grep /"inet addr/"|grep /"10/"|cut -d ':' -f2|cut -d ' ' -f1`/r"
expect -timeout 1
send "tar cvf /root//$IP--/$DATE.tgz /root/workspace/r"
expect -timeout 1
send "scp -r /root/*.tgz serverIP:/root/back/r"
expect "* (yes/no)*"
send "yes/r"
expect -timeout 1
expect "* password:*"
send "123456/r"
expect eof

用个笨方法

spawn  ssh -t root@$argv
expect {
"* (yes/no)*" { send "yes/r" ; set sshkey 1}
"* password:*" { send "123456/r" }
if $sshkey!=1 {
expect "* password:*"
send "123456/r" }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值