Code compliance
This commit is contained in:
parent
991734de03
commit
cdde314029
253
dev/n_osync.sh
253
dev/n_osync.sh
|
@ -4,7 +4,7 @@ PROGRAM="osync" # Rsync based two way sync engine with fault tolerance
|
||||||
AUTHOR="(C) 2013-2016 by Orsiris de Jong"
|
AUTHOR="(C) 2013-2016 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.2-beta3
|
PROGRAM_VERSION=1.2-beta3
|
||||||
PROGRAM_BUILD=2016121010
|
PROGRAM_BUILD=2016121101
|
||||||
IS_STABLE=no
|
IS_STABLE=no
|
||||||
|
|
||||||
#TODO: update waitfor parallelexec and checkarguments
|
#TODO: update waitfor parallelexec and checkarguments
|
||||||
|
@ -209,13 +209,15 @@ function _CheckReplicasLocal {
|
||||||
local replicaPath="${1}"
|
local replicaPath="${1}"
|
||||||
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local diskSpace
|
local diskSpace
|
||||||
|
|
||||||
if [ ! -d "$replicaPath" ]; then
|
if [ ! -d "$replicaPath" ]; then
|
||||||
if [ "$CREATE_DIRS" == "yes" ]; then
|
if [ "$CREATE_DIRS" == "yes" ]; then
|
||||||
$COMMAND_SUDO mkdir -p "$replicaPath" >> "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
$COMMAND_SUDO mkdir -p "$replicaPath" >> "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Cannot create local replica path [$replicaPath]." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Cannot create local replica path [$replicaPath]." "CRITICAL" $retval
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)"
|
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
|
@ -234,8 +236,9 @@ function _CheckReplicasLocal {
|
||||||
|
|
||||||
Logger "Checking minimum disk space in local replica [$replicaPath]." "NOTICE"
|
Logger "Checking minimum disk space in local replica [$replicaPath]." "NOTICE"
|
||||||
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Cannot get free space." "ERROR"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Cannot get free space." "ERROR" $retval
|
||||||
else
|
else
|
||||||
# Ugly fix for df in some busybox environments that can only show human formats
|
# Ugly fix for df in some busybox environments that can only show human formats
|
||||||
if [ $(IsInteger $diskSpace) -eq 0 ]; then
|
if [ $(IsInteger $diskSpace) -eq 0 ]; then
|
||||||
|
@ -252,6 +255,7 @@ function _CheckReplicasRemote {
|
||||||
local replicaPath="${1}"
|
local replicaPath="${1}"
|
||||||
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local cmd
|
local cmd
|
||||||
|
|
||||||
CheckConnectivity3rdPartyHosts
|
CheckConnectivity3rdPartyHosts
|
||||||
|
@ -269,8 +273,9 @@ function _CheckReplicasRemoteSub {
|
||||||
if [ ! -d "$replicaPath" ]; then
|
if [ ! -d "$replicaPath" ]; then
|
||||||
if [ "$CREATE_DIRS" == "yes" ]; then
|
if [ "$CREATE_DIRS" == "yes" ]; then
|
||||||
$COMMAND_SUDO mkdir -p "$replicaPath"
|
$COMMAND_SUDO mkdir -p "$replicaPath"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
RemoteLogger "Cannot create remote replica path [$replicaPath]." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
RemoteLogger "Cannot create remote replica path [$replicaPath]." "CRITICAL" $retval
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
RemoteLogger "Created remote replica path [$replicaPath]." "NOTICE"
|
RemoteLogger "Created remote replica path [$replicaPath]." "NOTICE"
|
||||||
|
@ -288,8 +293,9 @@ function _CheckReplicasRemoteSub {
|
||||||
|
|
||||||
RemoteLogger "Checking minimum disk space in remote replica [$replicaPath]." "NOTICE"
|
RemoteLogger "Checking minimum disk space in remote replica [$replicaPath]." "NOTICE"
|
||||||
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
diskSpace=$($DF_CMD "$replicaPath" | tail -1 | awk '{print $4}')
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
RemoteLogger "Cannot get free space." "ERROR"
|
if [ $retval -ne 0 ]; then
|
||||||
|
RemoteLogger "Cannot get free space." "ERROR" $retval
|
||||||
else
|
else
|
||||||
# Ugly fix for df in some busybox environments that can only show human formats
|
# Ugly fix for df in some busybox environments that can only show human formats
|
||||||
if [ $(IsInteger $diskSpace) -eq 0 ]; then
|
if [ $(IsInteger $diskSpace) -eq 0 ]; then
|
||||||
|
@ -304,9 +310,9 @@ function _CheckReplicasRemoteSub {
|
||||||
_CheckReplicasRemoteSub
|
_CheckReplicasRemoteSub
|
||||||
exit $?
|
exit $?
|
||||||
ENDSSH
|
ENDSSH
|
||||||
result=$?
|
retval=$?
|
||||||
if [ $result != 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "Failed to check remote replica." "CRITICAL"
|
Logger "Failed to check remote replica." "CRITICAL" $retval
|
||||||
fi
|
fi
|
||||||
if [ -s "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" ]; then
|
if [ -s "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" ]; then
|
||||||
(
|
(
|
||||||
|
@ -314,8 +320,8 @@ ENDSSH
|
||||||
Logger "$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
Logger "$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
if [ $result != 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
return 1
|
return $retval
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
@ -324,6 +330,7 @@ ENDSSH
|
||||||
function CheckReplicas {
|
function CheckReplicas {
|
||||||
__CheckArguments 0 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 0 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local pids
|
local pids
|
||||||
|
|
||||||
if [ "$REMOTE_OPERATION" != "yes" ]; then
|
if [ "$REMOTE_OPERATION" != "yes" ]; then
|
||||||
|
@ -343,8 +350,9 @@ function CheckReplicas {
|
||||||
pids="$pids;$!"
|
pids="$pids;$!"
|
||||||
fi
|
fi
|
||||||
WaitForTaskCompletion $pids 720 1800 $SLEEP_TIME $KEEP_LOGGING true true false
|
WaitForTaskCompletion $pids 720 1800 $SLEEP_TIME $KEEP_LOGGING true true false
|
||||||
if [ $? -ne 0 ]; then
|
retval=$?
|
||||||
Logger "Cancelling task." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Cancelling task." "CRITICAL" $retval
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -357,6 +365,7 @@ function _HandleLocksLocal {
|
||||||
|
|
||||||
__CheckArguments 4 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 4 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local lockfileContent
|
local lockfileContent
|
||||||
local lockPid
|
local lockPid
|
||||||
local lockInstanceID
|
local lockInstanceID
|
||||||
|
@ -364,8 +373,9 @@ function _HandleLocksLocal {
|
||||||
|
|
||||||
if [ ! -d "$replicaStateDir" ]; then
|
if [ ! -d "$replicaStateDir" ]; then
|
||||||
$COMMAND_SUDO mkdir -p "$replicaStateDir" >> "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
$COMMAND_SUDO mkdir -p "$replicaStateDir" >> "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Cannot create state dir [$replicaStateDir]." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Cannot create state dir [$replicaStateDir]." "CRITICAL" $retval
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
|
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
@ -389,11 +399,12 @@ function _HandleLocksLocal {
|
||||||
|
|
||||||
fi
|
fi
|
||||||
kill -0 $lockPid > /dev/null 2>&1
|
kill -0 $lockPid > /dev/null 2>&1
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "There is a local dead osync lock [$lockPid@$lockInstanceID] that is no longer running. Resuming." "NOTICE"
|
Logger "There is a local dead osync lock [$lockPid@$lockInstanceID] that is no longer running. Resuming." "NOTICE"
|
||||||
writeLocks=true
|
writeLocks=true
|
||||||
else
|
else
|
||||||
Logger "There is already a local instance [$lockPid@$lockInstanceID] of osync running for this replica. Cannot start." "CRITICAL"
|
Logger "There is already a local instance [$lockPid@$lockInstanceID] of osync running for this replica. Cannot start." "CRITICAL" $retval
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
@ -405,8 +416,9 @@ function _HandleLocksLocal {
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
$COMMAND_SUDO echo "$SCRIPT_PID@$INSTANCE_ID" > "$lockfile" 2> "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}-$replicaType.$SCRIPT_PID"
|
$COMMAND_SUDO echo "$SCRIPT_PID@$INSTANCE_ID" > "$lockfile" 2> "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}-$replicaType.$SCRIPT_PID"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Could not create lock file on local $replicaType in [$lockfile]." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Could not create lock file on local $replicaType in [$lockfile]." "CRITICAL" $retval
|
||||||
Logger "Command output\n$($RUN_DIR/$PROGRAM.${FUNCNAME[0]}-$replicaType.$SCRIPT_PID)" "NOTICE"
|
Logger "Command output\n$($RUN_DIR/$PROGRAM.${FUNCNAME[0]}-$replicaType.$SCRIPT_PID)" "NOTICE"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
|
@ -423,6 +435,7 @@ function _HandleLocksRemote {
|
||||||
|
|
||||||
__CheckArguments 4 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 4 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local initiatorRunningPids
|
local initiatorRunningPids
|
||||||
|
|
||||||
CheckConnectivity3rdPartyHosts
|
CheckConnectivity3rdPartyHosts
|
||||||
|
@ -446,8 +459,9 @@ function _HandleLocksRemoteSub {
|
||||||
#WIP do not remote log to file as output is already logged from ssh
|
#WIP do not remote log to file as output is already logged from ssh
|
||||||
if [ ! -d "$replicaStateDir" ]; then
|
if [ ! -d "$replicaStateDir" ]; then
|
||||||
$COMMAND_SUDO mkdir -p "$replicaStateDir"
|
$COMMAND_SUDO mkdir -p "$replicaStateDir"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
RemoteLogger "Cannot create state dir [$replicaStateDir]." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
RemoteLogger "Cannot create state dir [$replicaStateDir]." "CRITICAL" $retval
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -497,8 +511,9 @@ function _HandleLocksRemoteSub {
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
$COMMAND_SUDO echo "$SCRIPT_PID@$INSTANCE_ID" > "$lockfile"
|
$COMMAND_SUDO echo "$SCRIPT_PID@$INSTANCE_ID" > "$lockfile"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
RemoteLogger "Could not create lock file on local $replicaType in [$lockfile]." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
RemoteLogger "Could not create lock file on local $replicaType in [$lockfile]." "CRITICAL" $retval
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
RemoteLogger "Locked local $replicaType replica in [$lockfile]." "DEBUG"
|
RemoteLogger "Locked local $replicaType replica in [$lockfile]." "DEBUG"
|
||||||
|
@ -510,9 +525,9 @@ _HandleLocksRemoteSub
|
||||||
result=$?
|
result=$?
|
||||||
exit $result
|
exit $result
|
||||||
ENDSSH
|
ENDSSH
|
||||||
|
retval=$?
|
||||||
if [ $? != 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "Remote lock handling failed." "CRITICAL"
|
Logger "Remote lock handling failed." "CRITICAL" $retval
|
||||||
fi
|
fi
|
||||||
if [ -s "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" ]; then
|
if [ -s "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" ]; then
|
||||||
(
|
(
|
||||||
|
@ -520,7 +535,7 @@ ENDSSH
|
||||||
Logger "$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
Logger "$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
if [ $? != 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -528,6 +543,7 @@ ENDSSH
|
||||||
function HandleLocks {
|
function HandleLocks {
|
||||||
__CheckArguments 0 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 0 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local pids
|
local pids
|
||||||
local overwrite=false
|
local overwrite=false
|
||||||
|
|
||||||
|
@ -551,7 +567,8 @@ function HandleLocks {
|
||||||
INITIATOR_LOCK_FILE_EXISTS=true
|
INITIATOR_LOCK_FILE_EXISTS=true
|
||||||
TARGET_LOCK_FILE_EXISTS=true
|
TARGET_LOCK_FILE_EXISTS=true
|
||||||
WaitForTaskCompletion $pids 720 1800 $SLEEP_TIME $KEEP_LOGGING true true false
|
WaitForTaskCompletion $pids 720 1800 $SLEEP_TIME $KEEP_LOGGING true true false
|
||||||
if [ $? -ne 0 ]; then
|
retval=$?
|
||||||
|
if [ $retval -ne 0 ]; then
|
||||||
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
||||||
for pid in "${pidArray[@]}"; do
|
for pid in "${pidArray[@]}"; do
|
||||||
pid=${pid%:*}
|
pid=${pid%:*}
|
||||||
|
@ -562,7 +579,7 @@ function HandleLocks {
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
Logger "Cancelling task." "CRITICAL"
|
Logger "Cancelling task." "CRITICAL" $retval
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -572,10 +589,13 @@ function _UnlockReplicasLocal {
|
||||||
local lockfile="${1}"
|
local lockfile="${1}"
|
||||||
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
|
|
||||||
if [ -f "$lockfile" ]; then
|
if [ -f "$lockfile" ]; then
|
||||||
$COMMAND_SUDO rm "$lockfile"
|
$COMMAND_SUDO rm "$lockfile"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Could not unlock local replica." "ERROR"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Could not unlock local replica." "ERROR" $retval
|
||||||
else
|
else
|
||||||
Logger "Removed local replica lock." "DEBUG"
|
Logger "Removed local replica lock." "DEBUG"
|
||||||
fi
|
fi
|
||||||
|
@ -586,7 +606,8 @@ function _UnlockReplicasRemote {
|
||||||
local lockfile="${1}"
|
local lockfile="${1}"
|
||||||
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
local cmd=
|
local retval
|
||||||
|
local cmd
|
||||||
|
|
||||||
CheckConnectivity3rdPartyHosts
|
CheckConnectivity3rdPartyHosts
|
||||||
CheckConnectivityRemoteHost
|
CheckConnectivityRemoteHost
|
||||||
|
@ -597,8 +618,9 @@ if [ -f "$lockfile" ]; then
|
||||||
$COMMAND_SUDO rm -f "$lockfile"
|
$COMMAND_SUDO rm -f "$lockfile"
|
||||||
fi
|
fi
|
||||||
ENDSSH
|
ENDSSH
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Could not unlock remote replica." "ERROR"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Could not unlock remote replica." "ERROR" $retval
|
||||||
Logger "Command Output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
Logger "Command Output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
||||||
else
|
else
|
||||||
Logger "Removed remote replica lock." "DEBUG"
|
Logger "Removed remote replica lock." "DEBUG"
|
||||||
|
@ -648,6 +670,7 @@ function treeList {
|
||||||
|
|
||||||
__CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local escapedReplicaPath
|
local escapedReplicaPath
|
||||||
local rsyncCmd
|
local rsyncCmd
|
||||||
|
|
||||||
|
@ -679,14 +702,14 @@ function treeList {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Retval 24 = some files vanished while creating list
|
## Retval 24 = some files vanished while creating list
|
||||||
if ([ $retval == 0 ] || [ $retval == 24 ]) then
|
if ([ $retval -eq 0 ] || [ $retval -eq 24 ]) then
|
||||||
return $?
|
return $?
|
||||||
elif [ $retval == 23 ]; then
|
elif [ $retval -eq 23 ]; then
|
||||||
Logger "Some files could not be listed in $replicaType replica [$replicaPath]. Check for failing symlinks." "ERROR"
|
Logger "Some files could not be listed in $replicaType replica [$replicaPath]. Check for failing symlinks." "ERROR" $retval
|
||||||
Logger "Command output\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$replicaType.error.$SCRIPT_PID)" "NOTICE"
|
Logger "Command output\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$replicaType.error.$SCRIPT_PID)" "NOTICE"
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
Logger "Cannot create replica file list in [$replicaPath]." "CRITICAL"
|
Logger "Cannot create replica file list in [$replicaPath]." "CRITICAL" $retval
|
||||||
return $retval
|
return $retval
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -696,6 +719,8 @@ function deleteList {
|
||||||
local replicaType="${1}" # replica type: initiator, target
|
local replicaType="${1}" # replica type: initiator, target
|
||||||
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
|
local subretval
|
||||||
local cmd
|
local cmd
|
||||||
|
|
||||||
local failedDeletionListFromReplica
|
local failedDeletionListFromReplica
|
||||||
|
@ -723,13 +748,19 @@ function deleteList {
|
||||||
eval "$cmd" 2>> "$LOG_FILE"
|
eval "$cmd" 2>> "$LOG_FILE"
|
||||||
retval=$?
|
retval=$?
|
||||||
|
|
||||||
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Couldl not prepare $replicaType deletion list." "CRITICAL" $retval
|
||||||
|
return $retval
|
||||||
|
fi
|
||||||
|
|
||||||
# Add delete failed file list to current delete list and then empty it
|
# Add delete failed file list to current delete list and then empty it
|
||||||
if [ -f "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$failedDeletionListFromReplica${INITIATOR[$__failedDeletedListFile]}" ]; then
|
if [ -f "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$failedDeletionListFromReplica${INITIATOR[$__failedDeletedListFile]}" ]; then
|
||||||
cat "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$failedDeletionListFromReplica${INITIATOR[$__failedDeletedListFile]}" >> "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$replicaType${INITIATOR[$__deletedListFile]}"
|
cat "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$failedDeletionListFromReplica${INITIATOR[$__failedDeletedListFile]}" >> "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$replicaType${INITIATOR[$__deletedListFile]}"
|
||||||
if [ $? == 0 ]; then
|
subretval=$?
|
||||||
|
if [ $?subretval -eq 0 ]; then
|
||||||
rm -f "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$failedDeletionListFromReplica${INITIATOR[$__failedDeletedListFile]}"
|
rm -f "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$failedDeletionListFromReplica${INITIATOR[$__failedDeletedListFile]}"
|
||||||
else
|
else
|
||||||
Logger "Cannot add failed deleted list to current deleted list for replica [$replicaType]." "ERROR"
|
Logger "Cannot add failed deleted list to current deleted list for replica [$replicaType]." "ERROR" $subretval
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
return $retval
|
return $retval
|
||||||
|
@ -745,10 +776,13 @@ function _getFileCtimeMtimeLocal {
|
||||||
local fileList="${3}" # Contains list of files to get time attrs
|
local fileList="${3}" # Contains list of files to get time attrs
|
||||||
__CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
|
|
||||||
echo -n "" > "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID"
|
echo -n "" > "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID"
|
||||||
while read -r file; do $STAT_CTIME_MTIME_CMD "$replicaPath$file" | sort >> "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID"; done < "$fileList"
|
while read -r file; do $STAT_CTIME_MTIME_CMD "$replicaPath$file" | sort >> "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID"; done < "$fileList"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Getting file attributes failed [$retval] on $replicaType. Stopping execution." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Getting file attributes failed [$retval] on $replicaType. Stopping execution." "CRITICAL" $retval
|
||||||
if [ -f "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID" ]; then
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID)" "VERBOSE"
|
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID)" "VERBOSE"
|
||||||
fi
|
fi
|
||||||
|
@ -763,6 +797,7 @@ function _getFileCtimeMtimeRemote {
|
||||||
local fileList="${3}"
|
local fileList="${3}"
|
||||||
__CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local cmd
|
local cmd
|
||||||
|
|
||||||
#TODO WIP
|
#TODO WIP
|
||||||
|
@ -771,8 +806,9 @@ function _getFileCtimeMtimeRemote {
|
||||||
cmd='cat "'$fileList'" | '$SSH_CMD' "cat > \".$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID\""'
|
cmd='cat "'$fileList'" | '$SSH_CMD' "cat > \".$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID\""'
|
||||||
Logger "CMD: $cmd" "DEBUG"
|
Logger "CMD: $cmd" "DEBUG"
|
||||||
eval "$cmd"
|
eval "$cmd"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Sending ctime required file list failed with [$retval] on $replicaType. Stopping execution." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Sending ctime required file list failed with [$retval] on $replicaType. Stopping execution." "CRITICAL" $retval
|
||||||
if [ -f "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID" ]; then
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID)" "VERBOSE"
|
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID)" "VERBOSE"
|
||||||
fi
|
fi
|
||||||
|
@ -785,12 +821,13 @@ $SSH_CMD env PROGRAM="'$PROGRAM'" env SCRIPT_PID="'$SCRIPT_PID'" env replicaPath
|
||||||
rm -f ".$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID"
|
rm -f ".$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID"
|
||||||
fi
|
fi
|
||||||
ENDSSH
|
ENDSSH
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Getting file attributes failed [$retval] on $replicaType. Stopping execution." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Getting file attributes failed [$retval] on $replicaType. Stopping execution." "CRITICAL" $retval
|
||||||
if [ -f "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID" ]; then
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID)" "VERBOSE"
|
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID)" "VERBOSE"
|
||||||
fi
|
fi
|
||||||
return 1
|
return $retval
|
||||||
else
|
else
|
||||||
# Ugly fix for csh in FreeBSD 11 that adds leading and trailing '\"'
|
# Ugly fix for csh in FreeBSD 11 that adds leading and trailing '\"'
|
||||||
sed -i.tmp -e 's/^\\"//' -e 's/\\"$//' "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID"
|
sed -i.tmp -e 's/^\\"//' -e 's/\\"$//' "$RUN_DIR/$PROGRAM.ctime_mtime.$replicaType.$SCRIPT_PID"
|
||||||
|
@ -832,19 +869,20 @@ function syncAttrs {
|
||||||
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
retval=$?
|
retval=$?
|
||||||
|
|
||||||
if [ $retval != 0 ] && [ $retval != 24 ]; then
|
if [ $retval -ne 0 ] && [ $retval -ne 24 ]; then
|
||||||
Logger "Getting list of files that need updates failed [$retval]. Stopping execution." "CRITICAL"
|
Logger "Getting list of files that need updates failed [$retval]. Stopping execution." "CRITICAL" $retval
|
||||||
if [ -f "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" ]; then
|
||||||
Logger "Rsync output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
Logger "Rsync output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
||||||
fi
|
fi
|
||||||
return 1
|
return $retval
|
||||||
else
|
else
|
||||||
if [ -f "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" ]; then
|
||||||
Logger "List:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "VERBOSE"
|
Logger "List:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "VERBOSE"
|
||||||
fi
|
fi
|
||||||
( grep -Ev "^[^ ]*(c|s|t)[^ ]* " "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" || :) | ( grep -E "^[^ ]*(p|o|g|a)[^ ]* " || :) | sed -e 's/^[^ ]* //' >> "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}-cleaned.$SCRIPT_PID"
|
( grep -Ev "^[^ ]*(c|s|t)[^ ]* " "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" || :) | ( grep -E "^[^ ]*(p|o|g|a)[^ ]* " || :) | sed -e 's/^[^ ]* //' >> "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}-cleaned.$SCRIPT_PID"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Cannot prepare file list for attribute sync." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Cannot prepare file list for attribute sync." "CRITICAL" $retval
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -862,8 +900,9 @@ function syncAttrs {
|
||||||
pids="$pids;$!"
|
pids="$pids;$!"
|
||||||
fi
|
fi
|
||||||
WaitForTaskCompletion $pids $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion $pids $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Getting ctime attributes failed." "CRITICAL"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Getting ctime attributes failed." "CRITICAL" $retval
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -916,8 +955,8 @@ function syncAttrs {
|
||||||
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
retval=$?
|
retval=$?
|
||||||
|
|
||||||
if [ $retval != 0 ] && [ $retval != 24 ]; then
|
if [ $retval !-ne 0 ] && [ $retval -ne 24 ]; then
|
||||||
Logger "Updating file attributes on $destReplica [$retval]. Stopping execution." "CRITICAL"
|
Logger "Updating file attributes on $destReplica [$retval]. Stopping execution." "CRITICAL" $retval
|
||||||
if [ -f "$RUN_DIR/$PROGRAM.attr-update.$destReplica.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM.attr-update.$destReplica.$SCRIPT_PID" ]; then
|
||||||
Logger "Rsync output:\n$(cat $RUN_DIR/$PROGRAM.attr-update.$destReplica.$SCRIPT_PID)" "NOTICE"
|
Logger "Rsync output:\n$(cat $RUN_DIR/$PROGRAM.attr-update.$destReplica.$SCRIPT_PID)" "NOTICE"
|
||||||
fi
|
fi
|
||||||
|
@ -978,8 +1017,8 @@ function syncUpdate {
|
||||||
eval "$rsyncCmd"
|
eval "$rsyncCmd"
|
||||||
retval=$?
|
retval=$?
|
||||||
|
|
||||||
if [ $retval != 0 ] && [ $retval != 24 ]; then
|
if [ $retval -ne 0 ] && [ $retval -ne 24 ]; then
|
||||||
Logger "Updating $destinationReplica replica failed. Stopping execution." "CRITICAL"
|
Logger "Updating $destinationReplica replica failed. Stopping execution." "CRITICAL" $retval
|
||||||
if [ -f "$RUN_DIR/$PROGRAM.update.$destinationReplica.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM.update.$destinationReplica.$SCRIPT_PID" ]; then
|
||||||
Logger "Rsync output:\n$(cat $RUN_DIR/$PROGRAM.update.$destinationReplica.$SCRIPT_PID)" "NOTICE"
|
Logger "Rsync output:\n$(cat $RUN_DIR/$PROGRAM.update.$destinationReplica.$SCRIPT_PID)" "NOTICE"
|
||||||
fi
|
fi
|
||||||
|
@ -999,9 +1038,9 @@ function _deleteLocal {
|
||||||
local deletionDir="${3}" # deletion dir in format .[workdir]/deleted
|
local deletionDir="${3}" # deletion dir in format .[workdir]/deleted
|
||||||
__CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local parentdir
|
local parentdir
|
||||||
local previousFile=""
|
local previousFile=""
|
||||||
local result
|
|
||||||
|
|
||||||
local deletionListFromReplica
|
local deletionListFromReplica
|
||||||
|
|
||||||
|
@ -1016,8 +1055,9 @@ function _deleteLocal {
|
||||||
|
|
||||||
if [ ! -d "$replicaDir$deletionDir" ] && [ $_DRYRUN == false ]; then
|
if [ ! -d "$replicaDir$deletionDir" ] && [ $_DRYRUN == false ]; then
|
||||||
$COMMAND_SUDO mkdir -p "$replicaDir$deletionDir"
|
$COMMAND_SUDO mkdir -p "$replicaDir$deletionDir"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Cannot create local replica deletion directory in [$replicaDir$deletionDir]." "ERROR"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Cannot create local replica deletion directory in [$replicaDir$deletionDir]." "ERROR" $retval
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -1042,8 +1082,9 @@ function _deleteLocal {
|
||||||
Logger "Moving deleted file [$replicaDir$files] to [$replicaDir$deletionDir]." "VERBOSE"
|
Logger "Moving deleted file [$replicaDir$files] to [$replicaDir$deletionDir]." "VERBOSE"
|
||||||
mv -f "$replicaDir$files" "$replicaDir$deletionDir"
|
mv -f "$replicaDir$files" "$replicaDir$deletionDir"
|
||||||
fi
|
fi
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Cannot move [$replicaDir$files] to deletion directory." "ERROR"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Cannot move [$replicaDir$files] to deletion directory." "ERROR" $retval
|
||||||
echo "$files" >> "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$replicaType${INITIATOR[$__failedDeletedListFile]}"
|
echo "$files" >> "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$replicaType${INITIATOR[$__failedDeletedListFile]}"
|
||||||
else
|
else
|
||||||
echo "$files" >> "$RUN_DIR/$PROGRAM.delete.$replicaType.$SCRIPT_PID"
|
echo "$files" >> "$RUN_DIR/$PROGRAM.delete.$replicaType.$SCRIPT_PID"
|
||||||
|
@ -1054,10 +1095,10 @@ function _deleteLocal {
|
||||||
if [ $_DRYRUN == false ]; then
|
if [ $_DRYRUN == false ]; then
|
||||||
if [ -e "$replicaDir$files" ] || [ -L "$replicaDir$files" ]; then
|
if [ -e "$replicaDir$files" ] || [ -L "$replicaDir$files" ]; then
|
||||||
rm -rf "$replicaDir$files"
|
rm -rf "$replicaDir$files"
|
||||||
result=$?
|
retval=$?
|
||||||
Logger "Deleting [$replicaDir$files]." "VERBOSE"
|
Logger "Deleting [$replicaDir$files]." "VERBOSE"
|
||||||
if [ $result != 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "Cannot delete [$replicaDir$files]." "ERROR"
|
Logger "Cannot delete [$replicaDir$files]." "ERROR" $retval
|
||||||
echo "$files" >> "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$replicaType${INITIATOR[$__failedDeletedListFile]}"
|
echo "$files" >> "${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$replicaType${INITIATOR[$__failedDeletedListFile]}"
|
||||||
else
|
else
|
||||||
echo "$files" >> "$RUN_DIR/$PROGRAM.delete.$replicaType.$SCRIPT_PID"
|
echo "$files" >> "$RUN_DIR/$PROGRAM.delete.$replicaType.$SCRIPT_PID"
|
||||||
|
@ -1076,6 +1117,7 @@ function _deleteRemote {
|
||||||
local deletionDir="${3}" # deletion dir in format .[workdir]/deleted
|
local deletionDir="${3}" # deletion dir in format .[workdir]/deleted
|
||||||
__CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local escDestDir
|
local escDestDir
|
||||||
local rsyncCmd
|
local rsyncCmd
|
||||||
|
|
||||||
|
@ -1104,8 +1146,9 @@ function _deleteRemote {
|
||||||
rsyncCmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"$RSYNC_PATH\" -e \"$RSYNC_SSH_CMD\" \"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$deletionListFromReplica${INITIATOR[$__deletedListFile]}\" $REMOTE_USER@$REMOTE_HOST:\"$escDestDir/\" >> $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.precopy.$SCRIPT_PID 2>&1"
|
rsyncCmd="$(type -p $RSYNC_EXECUTABLE) --rsync-path=\"$RSYNC_PATH\" -e \"$RSYNC_SSH_CMD\" \"${INITIATOR[$__replicaDir]}${INITIATOR[$__stateDir]}/$deletionListFromReplica${INITIATOR[$__deletedListFile]}\" $REMOTE_USER@$REMOTE_HOST:\"$escDestDir/\" >> $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.precopy.$SCRIPT_PID 2>&1"
|
||||||
Logger "RSYNC_CMD: $rsyncCmd" "DEBUG"
|
Logger "RSYNC_CMD: $rsyncCmd" "DEBUG"
|
||||||
eval "$rsyncCmd" 2>> "$LOG_FILE"
|
eval "$rsyncCmd" 2>> "$LOG_FILE"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
Logger "Cannot copy the deletion list to remote replica." "ERROR"
|
if [ $retval -ne 0 ]; then
|
||||||
|
Logger "Cannot copy the deletion list to remote replica." "ERROR" $retval
|
||||||
if [ -f "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.precopy.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.precopy.$SCRIPT_PID" ]; then
|
||||||
Logger "$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.precopy.$SCRIPT_PID)" "ERROR"
|
Logger "$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.precopy.$SCRIPT_PID)" "ERROR"
|
||||||
fi
|
fi
|
||||||
|
@ -1129,8 +1172,9 @@ include #### RemoteLogger SUBSET ####
|
||||||
|
|
||||||
if [ ! -d "$REPLICA_DIR$DELETION_DIR" ] && [ $_DRYRUN == false ]; then
|
if [ ! -d "$REPLICA_DIR$DELETION_DIR" ] && [ $_DRYRUN == false ]; then
|
||||||
$COMMAND_SUDO mkdir -p "$REPLICA_DIR$DELETION_DIR"
|
$COMMAND_SUDO mkdir -p "$REPLICA_DIR$DELETION_DIR"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
RemoteLogger "Cannot create remote replica deletion directory in [$REPLICA_DIR$DELETION_DIR]." "ERROR"
|
if [ $retval -ne 0 ]; then
|
||||||
|
RemoteLogger "Cannot create remote replica deletion directory in [$REPLICA_DIR$DELETION_DIR]." "ERROR" $retval
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -1156,8 +1200,9 @@ include #### RemoteLogger SUBSET ####
|
||||||
RemoteLogger "Moving deleted file [$REPLICA_DIR$files] to [$REPLICA_DIR$DELETION_DIR]." "VERBOSE"
|
RemoteLogger "Moving deleted file [$REPLICA_DIR$files] to [$REPLICA_DIR$DELETION_DIR]." "VERBOSE"
|
||||||
$COMMAND_SUDO mv -f "$REPLICA_DIR$files" "$REPLICA_DIR$DELETION_DIR"
|
$COMMAND_SUDO mv -f "$REPLICA_DIR$files" "$REPLICA_DIR$DELETION_DIR"
|
||||||
fi
|
fi
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
RemoteLogger "Cannot move [$REPLICA_DIR$files] to deletion directory." "ERROR"
|
if [ $retval -ne 0 ]; then
|
||||||
|
RemoteLogger "Cannot move [$REPLICA_DIR$files] to deletion directory." "ERROR" $retval
|
||||||
# Using $files instead of $REPLICA_DIR$files here so the list is ready for next run
|
# Using $files instead of $REPLICA_DIR$files here so the list is ready for next run
|
||||||
echo "$files" >> "$FAILED_DELETE_LIST"
|
echo "$files" >> "$FAILED_DELETE_LIST"
|
||||||
else
|
else
|
||||||
|
@ -1170,8 +1215,9 @@ include #### RemoteLogger SUBSET ####
|
||||||
if [ -e "$REPLICA_DIR$files" ] || [ -e "$REPLICA_DIR$files" ]; then
|
if [ -e "$REPLICA_DIR$files" ] || [ -e "$REPLICA_DIR$files" ]; then
|
||||||
RemoteLogger "Deleting [$REPLICA_DIR$files]." "VERBOSE"
|
RemoteLogger "Deleting [$REPLICA_DIR$files]." "VERBOSE"
|
||||||
$COMMAND_SUDO rm -rf "$REPLICA_DIR$files"
|
$COMMAND_SUDO rm -rf "$REPLICA_DIR$files"
|
||||||
if [ $? != 0 ]; then
|
retval=$?
|
||||||
RemoteLogger "Cannot delete [$REPLICA_DIR$files]." "ERROR"
|
if [ $retval -ne 0 ]; then
|
||||||
|
RemoteLogger "Cannot delete [$REPLICA_DIR$files]." "ERROR" $retval
|
||||||
echo "$files" >> "$FAILED_DELETE_LIST"
|
echo "$files" >> "$FAILED_DELETE_LIST"
|
||||||
else
|
else
|
||||||
echo "$files" >> "$SUCCESS_DELETE_LIST"
|
echo "$files" >> "$SUCCESS_DELETE_LIST"
|
||||||
|
@ -1196,9 +1242,9 @@ ENDSSH
|
||||||
rsyncCmd="$(type -p $RSYNC_EXECUTABLE) -r --rsync-path=\"$RSYNC_PATH\" -e \"$RSYNC_SSH_CMD\" --include \"$(dirname ${TARGET[$__stateDir]})\" --include \"${TARGET[$__stateDir]}\" --include \"${TARGET[$__stateDir]}/$replicaType${TARGET[$__failedDeletedListFile]}\" --include \"${TARGET[$__stateDir]}/$replicaType${TARGET[$__successDeletedListFile]}\" --exclude='*' $REMOTE_USER@$REMOTE_HOST:\"$(EscapeSpaces ${TARGET[$__replicaDir]})\" \"${INITIATOR[$__replicaDir]}\" > \"$RUN_DIR/$PROGRAM.remote_failed_deletion_list_copy.$SCRIPT_PID\""
|
rsyncCmd="$(type -p $RSYNC_EXECUTABLE) -r --rsync-path=\"$RSYNC_PATH\" -e \"$RSYNC_SSH_CMD\" --include \"$(dirname ${TARGET[$__stateDir]})\" --include \"${TARGET[$__stateDir]}\" --include \"${TARGET[$__stateDir]}/$replicaType${TARGET[$__failedDeletedListFile]}\" --include \"${TARGET[$__stateDir]}/$replicaType${TARGET[$__successDeletedListFile]}\" --exclude='*' $REMOTE_USER@$REMOTE_HOST:\"$(EscapeSpaces ${TARGET[$__replicaDir]})\" \"${INITIATOR[$__replicaDir]}\" > \"$RUN_DIR/$PROGRAM.remote_failed_deletion_list_copy.$SCRIPT_PID\""
|
||||||
Logger "RSYNC_CMD: $rsyncCmd" "DEBUG"
|
Logger "RSYNC_CMD: $rsyncCmd" "DEBUG"
|
||||||
eval "$rsyncCmd" 2>> "$LOG_FILE"
|
eval "$rsyncCmd" 2>> "$LOG_FILE"
|
||||||
result=$?
|
retval=$?
|
||||||
if [ $result != 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "Cannot copy back the failed deletion list to initiator replica." "CRITICAL"
|
Logger "Cannot copy back the failed deletion list to initiator replica." "CRITICAL" $retval
|
||||||
if [ -f "$RUN_DIR/$PROGRAM.remote_failed_deletion_list_copy.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM.remote_failed_deletion_list_copy.$SCRIPT_PID" ]; then
|
||||||
Logger "Comand output: $(cat $RUN_DIR/$PROGRAM.remote_failed_deletion_list_copy.$SCRIPT_PID)" "NOTICE"
|
Logger "Comand output: $(cat $RUN_DIR/$PROGRAM.remote_failed_deletion_list_copy.$SCRIPT_PID)" "NOTICE"
|
||||||
fi
|
fi
|
||||||
|
@ -1212,6 +1258,7 @@ function deletionPropagation {
|
||||||
local replicaType="${1}" # Contains replica type: initiator, target where to delete
|
local replicaType="${1}" # Contains replica type: initiator, target where to delete
|
||||||
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 1 $# "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
|
local retval
|
||||||
local replicaDir
|
local replicaDir
|
||||||
local deleteDir
|
local deleteDir
|
||||||
|
|
||||||
|
@ -1224,8 +1271,8 @@ function deletionPropagation {
|
||||||
|
|
||||||
_deleteLocal "${INITIATOR[$__type]}" "$replicaDir" "$deleteDir"
|
_deleteLocal "${INITIATOR[$__type]}" "$replicaDir" "$deleteDir"
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval != 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "Deletion on $replicaType replica failed." "CRITICAL"
|
Logger "Deletion on $replicaType replica failed." "CRITICAL" $retval
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
@ -1242,7 +1289,7 @@ function deletionPropagation {
|
||||||
_deleteLocal "${TARGET[$__type]}" "$replicaDir" "$deleteDir"
|
_deleteLocal "${TARGET[$__type]}" "$replicaDir" "$deleteDir"
|
||||||
fi
|
fi
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval == 0 ]; then
|
if [ $retval -eq 0 ]; then
|
||||||
if [ -f "$RUN_DIR/$PROGRAM._delete_remote.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM._delete_remote.$SCRIPT_PID" ]; then
|
||||||
Logger "Remote:\n$(cat $RUN_DIR/$PROGRAM._delete_remote.$SCRIPT_PID)" "VERBOSE"
|
Logger "Remote:\n$(cat $RUN_DIR/$PROGRAM._delete_remote.$SCRIPT_PID)" "VERBOSE"
|
||||||
fi
|
fi
|
||||||
|
@ -1250,7 +1297,7 @@ function deletionPropagation {
|
||||||
else
|
else
|
||||||
Logger "Deletion on $replicaType failed." "CRITICAL"
|
Logger "Deletion on $replicaType failed." "CRITICAL"
|
||||||
if [ -f "$RUN_DIR/$PROGRAM.remote_deletion.$SCRIPT_PID" ]; then
|
if [ -f "$RUN_DIR/$PROGRAM.remote_deletion.$SCRIPT_PID" ]; then
|
||||||
Logger "Remote:\n$(cat $RUN_DIR/$PROGRAM.remote_deletion.$SCRIPT_PID)" "CRITICAL"
|
Logger "Remote:\n$(cat $RUN_DIR/$PROGRAM.remote_deletion.$SCRIPT_PID)" "CRITICAL" $retval
|
||||||
fi
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -1344,7 +1391,7 @@ function Sync {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
WaitForTaskCompletion "$initiatorPid;$targetPid" $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion "$initiatorPid;$targetPid" $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
||||||
initiatorFail=false
|
initiatorFail=false
|
||||||
targetFail=false
|
targetFail=false
|
||||||
|
@ -1389,7 +1436,7 @@ function Sync {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
WaitForTaskCompletion "$initiatorPid;$targetPid" $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion "$initiatorPid;$targetPid" $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
||||||
initiatorFail=false
|
initiatorFail=false
|
||||||
targetFail=false
|
targetFail=false
|
||||||
|
@ -1426,7 +1473,7 @@ function Sync {
|
||||||
if [[ "$RSYNC_ATTR_ARGS" == *"-X"* ]] || [[ "$RSYNC_ATTR_ARGS" == *"-A"* ]]; then
|
if [[ "$RSYNC_ATTR_ARGS" == *"-X"* ]] || [[ "$RSYNC_ATTR_ARGS" == *"-A"* ]]; then
|
||||||
syncAttrs "${INITIATOR[$__replicaDir]}" "$TARGET_SYNC_DIR"
|
syncAttrs "${INITIATOR[$__replicaDir]}" "$TARGET_SYNC_DIR"
|
||||||
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "${SYNC_ACTION[2]}" > "${INITIATOR[$__initiatorLastActionFile]}"
|
echo "${SYNC_ACTION[2]}" > "${INITIATOR[$__initiatorLastActionFile]}"
|
||||||
echo "${SYNC_ACTION[2]}" > "${INITIATOR[$__targetLastActionFile]}"
|
echo "${SYNC_ACTION[2]}" > "${INITIATOR[$__targetLastActionFile]}"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1451,7 +1498,7 @@ function Sync {
|
||||||
if [ "$resumeTarget" == "${SYNC_ACTION[3]}" ]; then
|
if [ "$resumeTarget" == "${SYNC_ACTION[3]}" ]; then
|
||||||
syncUpdate "${TARGET[$__type]}" "${INITIATOR[$__type]}" &
|
syncUpdate "${TARGET[$__type]}" "${INITIATOR[$__type]}" &
|
||||||
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "${SYNC_ACTION[3]}" > "${INITIATOR[$__targetLastActionFile]}"
|
echo "${SYNC_ACTION[3]}" > "${INITIATOR[$__targetLastActionFile]}"
|
||||||
resumeTarget="${SYNC_ACTION[3]}"
|
resumeTarget="${SYNC_ACTION[3]}"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1463,7 +1510,7 @@ function Sync {
|
||||||
if [ "$resumeInitiator" == "${SYNC_ACTION[3]}" ]; then
|
if [ "$resumeInitiator" == "${SYNC_ACTION[3]}" ]; then
|
||||||
syncUpdate "${INITIATOR[$__type]}" "${TARGET[$__type]}"
|
syncUpdate "${INITIATOR[$__type]}" "${TARGET[$__type]}"
|
||||||
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "${SYNC_ACTION[3]}" > "${INITIATOR[$__initiatorLastActionFile]}"
|
echo "${SYNC_ACTION[3]}" > "${INITIATOR[$__initiatorLastActionFile]}"
|
||||||
resumeInitiator="${SYNC_ACTION[3]}"
|
resumeInitiator="${SYNC_ACTION[3]}"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1476,7 +1523,7 @@ function Sync {
|
||||||
if [ "$resumeInitiator" == "${SYNC_ACTION[3]}" ]; then
|
if [ "$resumeInitiator" == "${SYNC_ACTION[3]}" ]; then
|
||||||
syncUpdate "${INITIATOR[$__type]}" "${TARGET[$__type]}"
|
syncUpdate "${INITIATOR[$__type]}" "${TARGET[$__type]}"
|
||||||
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "${SYNC_ACTION[3]}" > "${INITIATOR[$__initiatorLastActionFile]}"
|
echo "${SYNC_ACTION[3]}" > "${INITIATOR[$__initiatorLastActionFile]}"
|
||||||
resumeInitiator="${SYNC_ACTION[3]}"
|
resumeInitiator="${SYNC_ACTION[3]}"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1488,7 +1535,7 @@ function Sync {
|
||||||
if [ "$resumeTarget" == "${SYNC_ACTION[3]}" ]; then
|
if [ "$resumeTarget" == "${SYNC_ACTION[3]}" ]; then
|
||||||
syncUpdate "${TARGET[$__type]}" "${INITIATOR[$__type]}"
|
syncUpdate "${TARGET[$__type]}" "${INITIATOR[$__type]}"
|
||||||
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion $! $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "${SYNC_ACTION[3]}" > "${INITIATOR[$__targetLastActionFile]}"
|
echo "${SYNC_ACTION[3]}" > "${INITIATOR[$__targetLastActionFile]}"
|
||||||
resumeTarget="${SYNC_ACTION[3]}"
|
resumeTarget="${SYNC_ACTION[3]}"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1513,7 +1560,7 @@ function Sync {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
WaitForTaskCompletion "$initiatorPid;$targetPid" $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion "$initiatorPid;$targetPid" $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
||||||
initiatorFail=false
|
initiatorFail=false
|
||||||
targetFail=false
|
targetFail=false
|
||||||
|
@ -1559,7 +1606,7 @@ function Sync {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
WaitForTaskCompletion "$initiatorPid;$targetPid" $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion "$initiatorPid;$targetPid" $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
IFS=';' read -r -a pidArray <<< "$(eval echo \"\$WAIT_FOR_TASK_COMPLETION_${FUNCNAME[0]}\")"
|
||||||
initiatorFail=false
|
initiatorFail=false
|
||||||
targetFail=false
|
targetFail=false
|
||||||
|
@ -1632,7 +1679,7 @@ function _SoftDeleteLocal {
|
||||||
fi
|
fi
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval -ne 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "Error while executing cleanup on $replicaType replica." "ERROR"
|
Logger "Error while executing cleanup on $replicaType replica." "ERROR" $retval
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
||||||
else
|
else
|
||||||
Logger "Cleanup complete on $replicaType replica." "NOTICE"
|
Logger "Cleanup complete on $replicaType replica." "NOTICE"
|
||||||
|
@ -1682,7 +1729,7 @@ fi
|
||||||
ENDSSH
|
ENDSSH
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval -ne 0 ]; then
|
if [ $retval -ne 0 ]; then
|
||||||
Logger "Error while executing cleanup on remote $replicaType replica." "ERROR"
|
Logger "Error while executing cleanup on remote $replicaType replica." "ERROR" $retval
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "NOTICE"
|
||||||
else
|
else
|
||||||
Logger "Cleanup complete on $replicaType replica." "NOTICE"
|
Logger "Cleanup complete on $replicaType replica." "NOTICE"
|
||||||
|
@ -1707,7 +1754,7 @@ function SoftDelete {
|
||||||
pids="$pids;$!"
|
pids="$pids;$!"
|
||||||
fi
|
fi
|
||||||
WaitForTaskCompletion $pids $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion $pids $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ] && [ "$(eval echo \"\$HARD_MAX_EXEC_TIME_REACHED_${FUNCNAME[0]}\")" == true ]; then
|
if [ $? -ne 0 ] && [ "$(eval echo \"\$HARD_MAX_EXEC_TIME_REACHED_${FUNCNAME[0]}\")" == true ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -1725,7 +1772,7 @@ function SoftDelete {
|
||||||
pids="$pids;$!"
|
pids="$pids;$!"
|
||||||
fi
|
fi
|
||||||
WaitForTaskCompletion $pids $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
WaitForTaskCompletion $pids $SOFT_MAX_EXEC_TIME $HARD_MAX_EXEC_TIME $SLEEP_TIME $KEEP_LOGGING false true false
|
||||||
if [ $? != 0 ] && [ "$(eval echo \"\$HARD_MAX_EXEC_TIME_REACHED_${FUNCNAME[0]}\")" == true ]; then
|
if [ $? -ne 0 ] && [ "$(eval echo \"\$HARD_MAX_EXEC_TIME_REACHED_${FUNCNAME[0]}\")" == true ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -2033,8 +2080,8 @@ function SyncOnChanges {
|
||||||
Logger "daemon cmd: $cmd" "DEBUG"
|
Logger "daemon cmd: $cmd" "DEBUG"
|
||||||
eval "$cmd"
|
eval "$cmd"
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval != 0 ] && [ $retval != 2 ]; then
|
if [ $retval -ne 0 ] && [ $retval != 2 ]; then
|
||||||
Logger "osync child exited with error." "ERROR"
|
Logger "osync child exited with error." "ERROR" $retval
|
||||||
fi
|
fi
|
||||||
|
|
||||||
Logger "#### Monitoring now." "NOTICE"
|
Logger "#### Monitoring now." "NOTICE"
|
||||||
|
@ -2047,13 +2094,13 @@ function SyncOnChanges {
|
||||||
wait $!
|
wait $!
|
||||||
fi
|
fi
|
||||||
retval=$?
|
retval=$?
|
||||||
if [ $retval == 0 ]; then
|
if [ $retval -eq 0 ]; then
|
||||||
Logger "#### Changes detected, waiting $MIN_WAIT seconds before running next sync." "NOTICE"
|
Logger "#### Changes detected, waiting $MIN_WAIT seconds before running next sync." "NOTICE"
|
||||||
sleep $MIN_WAIT
|
sleep $MIN_WAIT
|
||||||
elif [ $retval == 2 ]; then
|
elif [ $retval -eq 2 ]; then
|
||||||
Logger "#### $MAX_WAIT timeout reached, running sync." "NOTICE"
|
Logger "#### $MAX_WAIT timeout reached, running sync." "NOTICE"
|
||||||
else
|
else
|
||||||
Logger "#### inotify error detected, waiting $MIN_WAIT seconds before running next sync." "ERROR"
|
Logger "#### inotify error detected, waiting $MIN_WAIT seconds before running next sync." "ERROR" $retval
|
||||||
sleep $MIN_WAIT
|
sleep $MIN_WAIT
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -2270,7 +2317,7 @@ else
|
||||||
CheckReplicas
|
CheckReplicas
|
||||||
RunBeforeHook
|
RunBeforeHook
|
||||||
Main
|
Main
|
||||||
if [ $? == 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
SoftDelete
|
SoftDelete
|
||||||
fi
|
fi
|
||||||
if [ $_SUMMARY == true ]; then
|
if [ $_SUMMARY == true ]; then
|
||||||
|
|
Loading…
Reference in New Issue