Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # rsync-now.sh
- #echo "($$) Process started"
- METHOD=ssh
- ARGS="--delete --progress"
- SRC=/dossier/source/
- DEST=utilisateur@hote:/dossier/cible
- OUTPUT_MAIL=root@localhost
- #OUTPUT_MAIL=0
- SCRIPTNAME=$(basename "$0")
- LOCK=$SCRIPTNAME.lock
- RSYNC_CMD="rsync -e $METHOD -av $ARGS $SRC $DEST"
- pid=$$
- if [ -f $LOCK ]; then
- #echo "($$) Lock already exists, updating PID & exiting"
- echo $pid > $LOCK
- exit
- fi;
- #echo "($$) Lock does not exist, creating"
- echo $pid > $LOCK
- runCmd=0
- while (( ! $runCmd )); do
- #echo "($$) Waiting 2s more..."
- sleep 2
- lockPid=`cat $LOCK`
- #echo "($$) $lockPid // $pid"
- if [ $lockPid == $pid ]; then
- runCmd=1
- else
- pid=$lockPid
- fi
- done
- #echo "($$) Lock PID unchanged, executing commands"
- out="`date` Starting sync...\n"
- while (( $runCmd )); do
- out="$out`$RSYNC_CMD` \n"
- lockPid=`cat $LOCK`
- #echo "($$) $lockPid // $pid"
- if [ $lockPid == $pid ]; then
- runCmd=0
- rm $LOCK;
- else
- pid=$lockPid
- fi
- done
- out="$out`date` Done.\n"
- if [ $OUTPUT_MAIL != 0 ]; then
- echo -e "$out" | mail -s "$SCRIPTNAME" $OUTPUT_MAIL
- else
- echo -e "$out"
- fi;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement