问题
需要将A主机上path_a路径的文件备份到B主机上path_b路径下,由于path_a路径下文件比较大也比较多,计划进行后台执行
方案
使用expect
+scp
function auto_login_scp(){
expect -c "
set timeout -1;
spawn scp -pr path_a BHostUserName@B:path_b
log_file /tmp/hostBak_log #日志目录 自己定义
expect {
*assword:* {
send $1\r;
expect {
*denied* {
exit: 2;
EOF
}
}
}
EOF {exit: 1;}
}
"
return $?
}
调用:
auto_login_scp BHostPassWD
TIPS
scp -p
为保留原文件信息,如创建时间、所属用户等
问题
通过实际场景使用时发现,除了传送整个目录的方式之外,还有传送目录下部分文件的需求,此需求脚本可见:
scp+shell+expect传送目录下部分文件
网友评论