用rsync來同步文件,有時會碰到網絡等問題同步未完成,寫了個簡單的循環判斷,若同步失敗則每隔5分鐘再去同步
#!/bin/bash
date=`date +%F`rsynclog=/home/data/log/rsync$date.log
echo `date` >> $rsynclog
/usr/bin/rsync -azP -e ssh *.*.*.*:/data/wd/HYZX* /home/data >>$rsynclog 2>&1
sleep 5
var1=`cat $rsynclog |awk 'END {print $1}'`
var2=`tail -2 $rsynclog |head -n 1 |awk '{print $1}'`
sucess="${var1}${var2}"
while [ "$sucess" != "totalsent" ]
do
echo `date` >> $rsynclog
/usr/bin/rsync -azP -e ssh *.*.*.*:/data/wd/HYZX* /home/data >>$rsynclog 2>&1
sleep 300
var1=`cat $rsynclog |awk 'END {print $1}'`
var2=`tail -2 $rsynclog|head -n 1 |awk '{print $1}'`
sucess="${var1}${var2}"
done