1、系统默认没有安装Expect,需要手动进行安装。
2、创建自动传输脚本
#!/usr/bin/expect
set timeout -1
set password "vRgmh%s9@W%MqPVuzJ^nA&cGeX2G5!3mH8asTxK2!yA&JXkS85CUh6DpBr#85PAh*jF%VQ"
set latest_date [exec ls -t /home/oracle/bak | head -n 1]
spawn scp -r /home/oracle/bak/$latest_date ylbak@bak.8u88.cn:/bak/定边采油厂液量系统
expect {
"password:" { send "$passwordr"; exp_continue }
}
3、创建定时同步脚本
使用Crontab添加定时任务执行脚本,如下:
0 16 * * * /bin/bash /temp/autobak/sync4.sh
4、问题解决
传输时,程序异常中断,导致大文件无法正常传输。
在shell脚本手动添加:设置连接不超时
set timeout -1