From 52f63f2e12f2b7a75dcae9849e61d4d5938ef880 Mon Sep 17 00:00:00 2001 From: onovy Date: Sat, 28 Mar 2015 21:37:51 +0100 Subject: [PATCH] Run sync after timeout in inotify mode even when no changes detected. --- osync.sh | 16 +++++++++++++--- sync.conf | 4 ++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/osync.sh b/osync.sh index 6ba5cf0..df9132a 100755 --- a/osync.sh +++ b/osync.sh @@ -1993,11 +1993,21 @@ function SyncOnChanges fi Log "#### Monitoring now." - inotifywait --exclude $OSYNC_DIR $RSYNC_EXCLUDE -qq -r -e create -e modify -e delete -e move -e attrib "$MASTER_SYNC_DIR" & + inotifywait --exclude $OSYNC_DIR $RSYNC_EXCLUDE -qq -r -e create -e modify -e delete -e move -e attrib --timeout "$MAX_WAIT" "$MASTER_SYNC_DIR" & sub_pid=$! wait $sub_pid - Log "#### Changes detected, waiting $MIN_WAIT seconds before running next sync." - sleep $MIN_WAIT + retval=$? + if [ $retval == 0 ] + then + Log "#### Changes detected, waiting $MIN_WAIT seconds before running next sync." + sleep $MIN_WAIT + elif [ $retval == 2 ] + then + Log "#### $MAX_WAIT timeout reached, running sync." + else + LogError "#### inotify error detected, waiting $MIN_WAIT seconds before running next sync." + sleep $MIN_WAIT + fi done } diff --git a/sync.conf b/sync.conf index bc8bef2..c1e12ad 100755 --- a/sync.conf +++ b/sync.conf @@ -87,6 +87,10 @@ HARD_MAX_EXEC_TIME=10600 ## Minimum time (in seconds) in file monitor /daemon mode between modification detection and sync task in order to let copy operations finish. MIN_WAIT=60 +## Maximum time (in seconds) waiting in file monitor / daemon mode. After this time, sync is run. +## Use 0 to wait indefinitely. +MAX_WAIT=300 + ## ---------- BACKUP AND DELETION OPTIONS ## Enabling this option will keep a backup of a file on the target replica if it gets updated from the source replica. Backups will be made to .osync_workdir/backups