expect 自动化运维 SCP自动输入密码 FTP

apt install except

范例 upscp.exp 文件

set timeout 60

spawn scp -r ./release/ root@127.0.0.1:/opt/

expect “*password:”

send “123456\n”

expect eof

解释 解释 解释 解释 解释

设置超时未60秒,默认10秒 若使用SCP FTP传输 10秒可能无法将全部信息发送 建议更具文件大小设置

写完之后 将文件保存为 upscp.exp,每个expect脚本spawn只能使用一次,相当于监控该命令

添加写入权限 chmod +x upscp.exp

执行 ./upscp.exp 即可

可以先写一个shell脚本用于操作备份(back.sh),最后在脚本中加入exp脚本用于传输操作

./upscp.exp

#!/usr/bin/expect -f
set timeout 60
spawn scp -r ./release/ root@127.0.0.1:/opt/
expect "*password:"
send "123456\n"
expect eof
spawn ftp ftp.test.com
expect "Name"
send "user\r"
expect "Password:"
send "123456\r"
interact

发表回复