#!/bin/sh runRsync () { mode=${1} lockFile=/tmp/test.lock runCount=0 runMax=5 date "+rsync update starts at %Y-%m-%d %H:%M:%S" while [ $runCount -lt $runMax ]; do ### program to execute. if [ $mode = "PULLING" ]; then lockf -t 0 ${lockFile} /usr/local/bin/rsync -avu --ipv4 --stats --safe-links --password-file=/usr/local/etc/rsyncd.passwd_rsyncbot rsyncbot@1.2.3.4::mybackup /home/srv/mybackup/ elif [ $mode = "PUSHING" ]; then lockf -t 0 ${lockFile} /usr/local/bin/rsync -avu --ipv4 --stats --safe-links --password-file=/usr/local/etc/rsyncd.passwd_rsyncbot /home/srv/mybackup/ rsyncbot@1.2.3.4::mybackup fi ### checking the exit status of the previous command. if [ $? -eq 0 ]; then break fi runCount=`expr $runCount + 1` if [ $runCount -eq $runMax ]; then break fi ### retry after ten seconds. sleep 10 done; date "+rsync update ends at %Y-%m-%d %H:%M:%S" } #umask 27 ### pulling from remote files to local runRsync "PULLING" ### pushing from local files to remote runRsync "PUSHING" echo '[DONE]'
Reference:
http://blog.ijun.org/2010/02/rsync-synchronizing-two-file-trees_19.html
No comments:
Post a Comment