主要思路就是使用scp命令 + linux定时执行任务。
目标:2台服务器,A为主服务器,B为备份服务器,需要每天中午12点将A上的文件备份到B上。
1.首先在A上安装except
一路yes下去即可
yum install expect
2.编写脚本
这里给个示例
要传的文件在A服务器的/home/20181025/
目录下
filepath=/home/20181025/
echo "`date +%Y%m%d` start upload......"
echo "`date +%Y%m%d` start upload......" > /home/import.log
sleep 5s
#B服务器所用账号的密码
password='**********'
echo "start copy datafile from remote path..."
echo "start copy datafile from remote path..." >> /home/import.log
/usr/bin/expect <<EOF
#设置超时时间
set timeout 10
#-r 为 递归复制整个目录,即现在会将/home/20181025/整个文件夹拷贝过去
#-p 为保留源文件权限
#顺便提下 -P 22 可以修改传输端口,不写默认为22
#root为B上的用户账号
#/home/ 为传输到的目录,即A上的/home/20181025/整个文件夹会被放到B上的/home/文件夹下
spawn scp -r -p $filepath root@xx.xx.xx.xx:/home/
expect "*assword:"
send "$password\r"
send "exit\r"
expect eof
EOF
if [ $? = 0 ]; then
echo "datafile copy successful!"
echo "datafile copy successful!" >> /home/import.l