#!/bin/bash
#author kinggoo
# shell.sh [hourly|daily|weekly|month]
#inotify-slave的ip地址
backupdatapath="/data2/backupdata/"
dsrc="${backupdatapath}htdocs"
#本地监控的目录
src=/data1/htdocs/
#exclude-from
excludeFrom="/var/spool/cron/rsync.exclude"
#日志
log="${backupdatapath}/log/`date +%Y%m`"
inotify_home=/usr/bin/
#inotify的安装目录
if [ ! -e "${inotify_home}/inotifywait" ] \
|| [ ! -e "/usr/bin/rsync" ];
then
echo "Check File and Folder"
exit 9
fi
if [ ! -d "${backupdatapath}/log/" ];
then
mkdir "${backupdatapath}/log/"
fi
if [[ "0"$1 == "0" ]];then
echo "shell file.sh [hourly|daily|weekly|month]"
exit 9
fi
case "${1}" in
"hourly")
dsrc=${dsrc}.hourly
echo "`date +%F\ %T` - rsync every 8 hours" >> $log
;;
"daily")
dsrc=${dsrc}.daily
echo "`date +%F\ %T` - rsync daily" >> $log
;;
"weekly")
dsrc=${dsrc}.weekly
echo "`date +%F\ %T` - rsync weekly" >> $log
;;
"month")
dsrc=${dsrc}.month
echo "`date +%F\ %T` - rsync month" >> $log
;;
"year")
dsrc=${dsrc}.year
echo "`date +%F\ %T` - rsync year" >> $log
;;
esac
if [ ! -d "$dsrc" ];
then
echo "Backupdata folder not found."
exit 9
fi
# rsync -avzP --delete --timeout=100 --password-file=${rsync_passfile} $src $user@$host01::$dst >/dev/null 2>&1
cd $src && /usr/bin/rsync -aruztD -R --delete --exclude-from=${excludeFrom} --timeout=100 ./ $dsrc >/dev/null 2>&1
echo "rsync done `date +%F\ %T` ${1}" > ${dsrc}/sync.log
exit 0
最新评语