rsync

#!/bin/sh
set -x
ADMIN=ch@c
LOG="/bkupEx/bkup/xm_bkup.log"
PARA="-av --bwlimit=256 --delete --delete-excluded -b --log-format=[%o]%f"
EXCLUDES="--exclude=Datatransfer --exclude=TEMP"
BACKUPDIR="/bkupEx/bkHistory/xm_deleted"
BACKUPDIR_INC=$BACKUPDIR/`date -d yesterday +%A`
***_setting=***
FPING="/usr/local/sbin/fping"
SendMail="/usr/local/bin/sendhtml.pl"
function funcDial***(){
  echo -e "<br>[*] Dialing *** $***_setting...</br>"
  pppd call $1 logfd 2 nodetach > /dev/null 2>&1 &
  sleep 15
  if [ -e /var/run/ppp-$***_setting.pid ] ; then
    pppdPID=`head -1 /var/run/ppp-$***_setting.pid`
  # a return value cannot go larger than 256
    return 1
  else
    return 0
  fi
}
if ! [ -f $LOG ]
then
  touch $LOG
else
  2> $LOG
fi
if ! [ -f $LOG.M ]
then
  touch $LOG.M
else
  2> $LOG.M
fi
[ -d $BACKUPDIR/emptydir ] || mkdir $BACKUPDIR/emptydir
rsync --delete -a $BACKUPDIR/emptydir/ $BACKUPDIR_INC/
rmdir $BACKUPDIR/emptydir
before=$(date "+%Y/%m/%d %H:%M")
before_s=$(date +%s)
exec >> $LOG
echo '<!DOCTYPE HTML PUBLC "-//W3C//DTD HTML 3.2 FINAL//EN">'
echo '<html>'
echo '<head>'
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>'
echo '</head>'
echo '<body>'
echo "<br>[*] Rsync operation started at $before</br>"
echo "<br></br>"
echo "<br>[*] Syncing Project M ......</br>"
# initialze *** connection
connected=0
until [ $connected = 1 ]
do
  funcDial*** $***_setting
  connected=$?
done
echo -e "<br>[*] The pppd's process ID is $pppdPID</br>"
exitCode=1
until [ $exitCode = 0 ]
do
  rsync $PARA $EXCLUDES --backup-dir=$BACKUPDIR_INC/M C@192:/bkup/Backup/M/M /bkupEx/bkup/M/ >> $LOG.M
  exitCode=$?
  if [ $exitCode -ne 0 ] ; then
 echo "<br></br>"
 echo -e "<br>[*] rsync process failed. The exit code is $exitCode.</br>"
 $FPING -r5 -u 192>& /dev/null
 if [ $? -ne 0 ]; then
   echo "<br>*** disconnected....</br>"
   kill $pppdPID
 fi
  fi
done
echo "<br></br>"
echo "<br>" ; tail -3 $LOG.M ; echo "</br>"
echo "<br></br>"
deleted=$(grep '^\[del' $LOG.M | wc -l)
synced=$(grep '^\[recv' $LOG.M | wc -l)
echo "<br>[*] 有$deleted,$synced同步。</br>"
echo "<br></br>"
after=$(date "+%Y/%m/%d %H:%M")
after_s=$(date +%s)
elapsed="$(expr $after_s - $before_s)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo "<br></br>"
echo "<br>[*] Rsync operation ended at $after</br>"
echo "<br>[*] Time spent:$hours hours $minutes minutes $seconds seconds</br>"
echo '</body>'
echo '</html>'
$SendMail "XM data backup script log" $ADMIN $LOG
kill $pppdPID
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章