WIP SYNC_TYPE
This commit is contained in:
parent
a52068dec0
commit
7e945197c2
|
@ -7,7 +7,7 @@ PROGRAM="osync" # Rsync based two way sync engine with fault tolerance
|
||||||
AUTHOR="(C) 2013-2019 by Orsiris de Jong"
|
AUTHOR="(C) 2013-2019 by Orsiris de Jong"
|
||||||
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
|
CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr"
|
||||||
PROGRAM_VERSION=1.3.0-pre-rc1
|
PROGRAM_VERSION=1.3.0-pre-rc1
|
||||||
PROGRAM_BUILD=2019052004
|
PROGRAM_BUILD=2019052005
|
||||||
IS_STABLE=false
|
IS_STABLE=false
|
||||||
|
|
||||||
CONFIG_FILE_REVISION_REQUIRED=1.3.0
|
CONFIG_FILE_REVISION_REQUIRED=1.3.0
|
||||||
|
@ -1238,7 +1238,8 @@ function syncAttrs {
|
||||||
function syncUpdate {
|
function syncUpdate {
|
||||||
local sourceReplica="${1}" # Contains replica type of source: initiator, target
|
local sourceReplica="${1}" # Contains replica type of source: initiator, target
|
||||||
local destinationReplica="${2}" # Contains replica type of destination: initiator, target
|
local destinationReplica="${2}" # Contains replica type of destination: initiator, target
|
||||||
__CheckArguments 2 $# "$@" #__WITH_PARANOIA_DEBUG
|
local remoteDelete="${3:-false}" # Use rsnyc to delete remote files if not existent in source
|
||||||
|
__CheckArguments 2-3 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
local rsyncCmd
|
local rsyncCmd
|
||||||
local retval
|
local retval
|
||||||
|
@ -1249,6 +1250,7 @@ function syncUpdate {
|
||||||
local escDestDir
|
local escDestDir
|
||||||
|
|
||||||
local backupArgs
|
local backupArgs
|
||||||
|
local deleteArgs
|
||||||
|
|
||||||
Logger "Updating $destinationReplica replica." "NOTICE"
|
Logger "Updating $destinationReplica replica." "NOTICE"
|
||||||
if [ "$sourceReplica" == "${INITIATOR[$__type]}" ]; then
|
if [ "$sourceReplica" == "${INITIATOR[$__type]}" ]; then
|
||||||
|
@ -1267,16 +1269,20 @@ function syncUpdate {
|
||||||
escDestDir=$(EscapeSpaces "${INITIATOR[$__replicaDir]}")
|
escDestDir=$(EscapeSpaces "${INITIATOR[$__replicaDir]}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$remoteDelete" == true ]; then
|
||||||
|
deleteArgs="--delete-after"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$REMOTE_OPERATION" == true ]; then
|
if [ "$REMOTE_OPERATION" == true ]; then
|
||||||
CheckConnectivity3rdPartyHosts
|
CheckConnectivity3rdPartyHosts
|
||||||
CheckConnectivityRemoteHost
|
CheckConnectivityRemoteHost
|
||||||
if [ "$sourceReplica" == "${INITIATOR[$__type]}" ]; then
|
if [ "$sourceReplica" == "${INITIATOR[$__type]}" ]; then
|
||||||
rsyncCmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"env LC_ALL=C env _REMOTE_TOKEN=$_REMOTE_TOKEN $RSYNC_PATH\" $RSYNC_DEFAULT_ARGS $RSYNC_DRY_ARG $RSYNC_ATTR_ARGS $RSYNC_TYPE_ARGS $SYNC_OPTS -e \"$RSYNC_SSH_CMD\" $backupArgs --exclude \"$OSYNC_DIR\" $RSYNC_FULL_PATTERNS $RSYNC_PARTIAL_EXCLUDE --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$sourceReplica${INITIATOR[$__deletedListFile]}\" --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$destinationReplica${INITIATOR[$__deletedListFile]}\" \"$sourceDir\" $REMOTE_USER@$REMOTE_HOST:\"$escDestDir\" >> $RUN_DIR/$PROGRAM.update.$destinationReplica.$SCRIPT_PID.$TSTAMP 2>&1"
|
rsyncCmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"env LC_ALL=C env _REMOTE_TOKEN=$_REMOTE_TOKEN $RSYNC_PATH\" $RSYNC_DEFAULT_ARGS $RSYNC_DRY_ARG $RSYNC_ATTR_ARGS $RSYNC_TYPE_ARGS $SYNC_OPTS -e \"$RSYNC_SSH_CMD\" $backupArgs $deleteArgs --exclude \"$OSYNC_DIR\" $RSYNC_FULL_PATTERNS $RSYNC_PARTIAL_EXCLUDE --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$sourceReplica${INITIATOR[$__deletedListFile]}\" --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$destinationReplica${INITIATOR[$__deletedListFile]}\" \"$sourceDir\" $REMOTE_USER@$REMOTE_HOST:\"$escDestDir\" >> $RUN_DIR/$PROGRAM.update.$destinationReplica.$SCRIPT_PID.$TSTAMP 2>&1"
|
||||||
else
|
else
|
||||||
rsyncCmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"env LC_ALL=C env _REMOTE_TOKEN=$_REMOTE_TOKEN $RSYNC_PATH\" $RSYNC_DEFAULT_ARGS $RSYNC_DRY_ARG $RSYNC_ATTR_ARGS $RSYNC_TYPE_ARGS $SYNC_OPTS -e \"$RSYNC_SSH_CMD\" $backupArgs --exclude \"$OSYNC_DIR\" $RSYNC_FULL_PATTERNS $RSYNC_PARTIAL_EXCLUDE --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$destinationReplica${INITIATOR[$__deletedListFile]}\" --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$sourceReplica${INITIATOR[$__deletedListFile]}\" $REMOTE_USER@$REMOTE_HOST:\"$escSourceDir\" \"$destDir\" >> $RUN_DIR/$PROGRAM.update.$destinationReplica.$SCRIPT_PID.$TSTAMP 2>&1"
|
rsyncCmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"env LC_ALL=C env _REMOTE_TOKEN=$_REMOTE_TOKEN $RSYNC_PATH\" $RSYNC_DEFAULT_ARGS $RSYNC_DRY_ARG $RSYNC_ATTR_ARGS $RSYNC_TYPE_ARGS $SYNC_OPTS -e \"$RSYNC_SSH_CMD\" $backupArgs $deleteArgs --exclude \"$OSYNC_DIR\" $RSYNC_FULL_PATTERNS $RSYNC_PARTIAL_EXCLUDE --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$destinationReplica${INITIATOR[$__deletedListFile]}\" --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$sourceReplica${INITIATOR[$__deletedListFile]}\" $REMOTE_USER@$REMOTE_HOST:\"$escSourceDir\" \"$destDir\" >> $RUN_DIR/$PROGRAM.update.$destinationReplica.$SCRIPT_PID.$TSTAMP 2>&1"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
rsyncCmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"env LC_ALL=C env _REMOTE_TOKEN=$_REMOTE_TOKEN $RSYNC_PATH\" $RSYNC_DEFAULT_ARGS $RSYNC_DRY_ARG $RSYNC_ATTR_ARGS $RSYNC_TYPE_ARGS $SYNC_OPTS $backupArgs --exclude \"$OSYNC_DIR\" $RSYNC_FULL_PATTERNS $RSYNC_PARTIAL_EXCLUDE --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$sourceReplica${INITIATOR[$__deletedListFile]}\" --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$destinationReplica${INITIATOR[$__deletedListFile]}\" \"$sourceDir\" \"$destDir\" >> $RUN_DIR/$PROGRAM.update.$destinationReplica.$SCRIPT_PID.$TSTAMP 2>&1"
|
rsyncCmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"env LC_ALL=C env _REMOTE_TOKEN=$_REMOTE_TOKEN $RSYNC_PATH\" $RSYNC_DEFAULT_ARGS $RSYNC_DRY_ARG $RSYNC_ATTR_ARGS $RSYNC_TYPE_ARGS $SYNC_OPTS $backupArgs $deleteArgs --exclude \"$OSYNC_DIR\" $RSYNC_FULL_PATTERNS $RSYNC_PARTIAL_EXCLUDE --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$sourceReplica${INITIATOR[$__deletedListFile]}\" --exclude-from=\"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$destinationReplica${INITIATOR[$__deletedListFile]}\" \"$sourceDir\" \"$destDir\" >> $RUN_DIR/$PROGRAM.update.$destinationReplica.$SCRIPT_PID.$TSTAMP 2>&1"
|
||||||
fi
|
fi
|
||||||
Logger "RSYNC_CMD: $rsyncCmd" "DEBUG"
|
Logger "RSYNC_CMD: $rsyncCmd" "DEBUG"
|
||||||
eval "$rsyncCmd"
|
eval "$rsyncCmd"
|
||||||
|
@ -1664,6 +1670,8 @@ function Initialize {
|
||||||
###### Step 8a & 8b: Create after run ctime & mtime file list of replicas
|
###### Step 8a & 8b: Create after run ctime & mtime file list of replicas
|
||||||
|
|
||||||
function Sync {
|
function Sync {
|
||||||
|
local syncType="${1}" # Optional sync type. By default, sync is bidirectional.
|
||||||
|
|
||||||
__CheckArguments 0 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 0 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
local resumeCount
|
local resumeCount
|
||||||
|
@ -1726,6 +1734,14 @@ function Sync {
|
||||||
resumeTarget="none"
|
resumeTarget="none"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# If using unidirectional sync, let's point resumes at step 5 directly
|
||||||
|
if [ "$SYNC_TYPE" == "initiator2target" ]; then
|
||||||
|
resumeInitiator="${SYNC_ACTION[5]}"
|
||||||
|
resumeTarget="${SYNC_ACTION[6]}"
|
||||||
|
elif [ "$SYNC_TYPE" == "target2initiator" ]; then
|
||||||
|
resumeInitiator="${SYNC_ACTION[6]}"
|
||||||
|
resumeTarget="${SYNC_ACTION[5]}"
|
||||||
|
fi
|
||||||
|
|
||||||
################################################################################################################################################# Actual sync begins here
|
################################################################################################################################################# Actual sync begins here
|
||||||
|
|
||||||
|
@ -1977,6 +1993,11 @@ function Sync {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$SYNC_TYPE" == "initiator2target" ] || [ "$SYNC_TYPE" == "target2initiator" ]; then
|
||||||
|
resumeInitiator="${SYNC_ACTION[9]}"
|
||||||
|
resumeTarget="${SYNC_ACTION[9]}"
|
||||||
|
fi
|
||||||
|
|
||||||
## Step 6a & 6b
|
## Step 6a & 6b
|
||||||
if [ "$resumeInitiator" == "${SYNC_ACTION[6]}" ] || [ "$resumeTarget" == "${SYNC_ACTION[6]}" ]; then
|
if [ "$resumeInitiator" == "${SYNC_ACTION[6]}" ] || [ "$resumeTarget" == "${SYNC_ACTION[6]}" ]; then
|
||||||
if [ "$resumeInitiator" == "${SYNC_ACTION[6]}" ]; then
|
if [ "$resumeInitiator" == "${SYNC_ACTION[6]}" ]; then
|
||||||
|
|
Loading…
Reference in New Issue