本地同步备份
#!/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 条评论。