Improved file monitor mode
This commit is contained in:
		
							parent
							
								
									e3f5b2f85b
								
							
						
					
					
						commit
						e18dfd1822
					
				|  | @ -21,6 +21,7 @@ KNOWN ISSUES | |||
| RECENT CHANGES | ||||
| -------------- | ||||
| 
 | ||||
| - Improved file monitor mode | ||||
| - Added possibility to daemonize osync in monitor mode | ||||
| - Added monitor mode, which will launch a sync task upon file operations on master replica | ||||
| - Changed conf file default format for ssh uri (old format is still compatible) | ||||
|  |  | |||
							
								
								
									
										42
									
								
								osync.sh
								
								
								
								
							
							
						
						
									
										42
									
								
								osync.sh
								
								
								
								
							|  | @ -3,7 +3,7 @@ | |||
| ###### Osync - Rsync based two way sync engine with fault tolerance | ||||
| ###### (L) 2013 by Orsiris "Ozy" de Jong (www.netpower.fr)  | ||||
| OSYNC_VERSION=0.99RC2-qs | ||||
| OSYNC_BUILD=2511201301 | ||||
| OSYNC_BUILD=2511201302 | ||||
| 
 | ||||
| DEBUG=no | ||||
| SCRIPT_PID=$$ | ||||
|  | @ -774,6 +774,11 @@ function WriteLockFiles | |||
| 
 | ||||
| function LockDirectories | ||||
| { | ||||
| 	if [ $nolocks -eq 1 ] | ||||
| 	then | ||||
| 		return 0 | ||||
| 	fi | ||||
| 
 | ||||
| 	if [ $force_unlock -eq 1 ] | ||||
| 	then | ||||
| 		WriteLockFiles | ||||
|  | @ -850,6 +855,11 @@ function LockDirectories | |||
| 
 | ||||
| function UnlockDirectories | ||||
| { | ||||
| 	if [ $nolocks -eq 1 ] | ||||
| 	then | ||||
| 		return 0 | ||||
| 	fi | ||||
| 
 | ||||
| 	if [ "$REMOTE_SYNC" == "yes" ] | ||||
| 	then | ||||
| 		CheckConnectivity3rdPartyHosts | ||||
|  | @ -1712,7 +1722,13 @@ function SyncOnChanges | |||
| 	while true | ||||
| 	do | ||||
|         	inotifywait --exclude $OSYNC_DIR $RSYNC_EXCLUDE -qq -r -e create -e modify -e delete -e move -e attrib "$MASTER_SYNC_DIR/"  | ||||
|         	$osync_cmd "$ConfigFile" $opts | ||||
| 		if [ "$ConfigFile" != "" ] | ||||
| 		then | ||||
|         		cmd="bash $osync_cmd \"$ConfigFile\" $opts --no-locks" | ||||
| 		else | ||||
| 			cmd="bash $osync_cmd $opts --no-locks" | ||||
| 		fi | ||||
| 		eval $cmd | ||||
| 	done | ||||
| 
 | ||||
| } | ||||
|  | @ -1736,6 +1752,7 @@ soft_stop=0 | |||
| quick_sync=0 | ||||
| sync_on_changes=0 | ||||
| daemonize=0 | ||||
| nolocks=0 | ||||
| osync_cmd=$0 | ||||
| 
 | ||||
| if [ $# -eq 0 ] | ||||
|  | @ -1773,14 +1790,17 @@ do | |||
| 		quick_sync=$(($quick_sync + 1)) | ||||
| 		no_maxtime=1 | ||||
| 		MASTER_SYNC_DIR=${i##*=} | ||||
| 		opts=$opts" --master=\"$MASTER_SYNC_DIR\"" | ||||
| 		;; | ||||
| 		--slave=*) | ||||
| 		quick_sync=$(($quick_sync + 1)) | ||||
| 		SLAVE_SYNC_DIR=${i##*=} | ||||
| 		opts=$opts" --slave=\"$SLAVE_SYNC_DIR\"" | ||||
| 		no_maxtime=1 | ||||
| 		;; | ||||
| 		--rsakey=*) | ||||
| 		SSH_RSA_PRIVATE_KEY=${i##*=} | ||||
| 		opts=$opts" --rsakey=\"$SSH_RSA_PRIVATE_KEY\"" | ||||
| 		;; | ||||
| 		--on-changes) | ||||
| 		sync_on_changes=1 | ||||
|  | @ -1788,9 +1808,15 @@ do | |||
| 		--daemon) | ||||
| 		daemonize=1 | ||||
| 		;; | ||||
| 		--no-locks) | ||||
| 		nolocks=1 | ||||
| 		;; | ||||
| 	esac | ||||
| done | ||||
| 
 | ||||
| # Remove leading space if there is one | ||||
| opts="${opts# *}" | ||||
| 
 | ||||
| CheckEnvironment | ||||
| if [ $? == 0 ] | ||||
| then | ||||
|  | @ -1811,17 +1837,23 @@ then | |||
| 	then | ||||
| 		if [ $daemonize -eq 1 ] | ||||
| 		then | ||||
| 			echo $SCRIPT_PID > $PID_FILE | ||||
| 			## echo $SCRIPT_PID > $PID_FILE | ||||
| 			silent=1 | ||||
| 			exec > /dev/null 2>&1 | ||||
| 			SyncOnChanges & | ||||
| 			exit | ||||
| 		else | ||||
| 			SyncOnChanges | ||||
| 		fi | ||||
| 		SyncOnChanges & | ||||
| 		exit | ||||
| 	fi | ||||
| 	DATE=$(date) | ||||
| 	Log "-------------------------------------------------------------" | ||||
| 	Log "$DRY_WARNING $DATE - Osync v$OSYNC_VERSION script begin." | ||||
| 	Log "-------------------------------------------------------------" | ||||
| 	if [ $daemonize -eq 1 ] | ||||
| 	then | ||||
| 		Log "Running as daemon" | ||||
| 	fi | ||||
| 	Log "Sync task [$SYNC_ID] launched as $LOCAL_USER@$LOCAL_HOST (PID $SCRIPT_PID)" | ||||
| 	GetOperatingSystem | ||||
| 	if [ $no_maxtime -eq 1 ] | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue