#每周三、五传输confluence备份至备份服务器上
#运用crndtab实现定时,此只是定时运行的脚本:30 22 * * 3,5 sh /home/atlassian/backups/backup.sh
#本地备份存放目录:/home/atlassian/backups
filepath=/home/atlassian/backups
#显示当前时间
echo “date +%Y%m%d
start upload…”
#等待五秒
sleep 5s
#给备份文件夹下所有文件添加权限
chmod -R 777 /home/atlassian/backups/*
#B服务器所用账号的密码
password=‘123123’
echo “start copy datafile from remote path…”
#将信息写入import.log文件中
echo “start copy datafile from remote path…” >> /home/atlassian/backups/import.log
#要运行脚本先安装expect:apt-get install expect
/usr/bin/expect <<EOF
#设置超时时间
set timeout 10
#-r 为 递归复制整个目录,即现在会将/home/20181025/整个文件夹拷贝过去
#-p 为保留源文件权限
#顺便提下 -P 22 可以修改传输端口,不写默认为22
#root为B上的用户账号
#/home/backup 为传输到的目录,即A上的/home/atlassian/backups整个文件夹会被放到B上的/data/home/confluence-backup文件夹下
set timeout -1
#传输文件
spawn scp -r -p $filepath root@192.168.xxx.xxx:/data/home/confluence-backup
#判断页面相应
yexpect {
“(yes/no)?”
{
send “yes\n”
expect “*assword:” {send “KaTeX parse error: Undefined control sequence: \n at position 9: password\̲n̲"} } "*asswor…password\n”
}
}
send “exit\n”
#当传输完100%再停止脚本,否则传输会终端
expect 100%
expect eof
EOF
#传输完成/终端后向日志文件中添加日志
if [ $? = 0 ]; then
echo “datafile copy successful!”
echo date +"%Y-%m-%d %H:%M:%S"
: >> /home/atlassian/backups/import.log
echo “datafile copy successful!” >>/home/atlassian/backups/import.log
echo “————————————” >>/home/atlassian/backups/import.log
else
echo “datafile copy failed!”
echo date +"%Y-%m-%d %H:%M:%S"
: >>/home/atlassian/backups/import.log
echo “datafile copy failed!” >>/home/atlassian/backups/import.log
echo “————————————” >>/home/atlassian/backups/import.log
fi