本地同步备份
#!/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
crond计划
0 3,11,15 * * * /usr/bin/sh /var/spool/cron/inotify_backupdata.sh hourly 0 0 * * * /usr/bin/sh /var/spool/cron/inotify_backupdata.sh daily 58 3 * * fri /usr/bin/sh /var/spool/cron/inotify_backupdata.sh weekly 30 6 2 * * /usr/bin/sh /var/spool/cron/inotify_backupdata.sh month 10 1 2 1,7 * /usr/bin/sh /var/spool/cron/inotify_backupdata.sh year
如果你觉得好,请大家到公众号给个红心支持一下!!

- THE END -

玩趣儿

0 条评论。