parent
2de50b413c
commit
2abe5c36c1
|
@ -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.1.1
|
PROGRAM_VERSION=1.1.1
|
||||||
PROGRAM_BUILD=2016080108
|
PROGRAM_BUILD=2016080106
|
||||||
IS_STABLE=yes
|
IS_STABLE=yes
|
||||||
|
|
||||||
## FUNC_BUILD=2016071902
|
## FUNC_BUILD=2016071902
|
||||||
|
@ -1375,23 +1375,13 @@ function CheckCurrentConfig {
|
||||||
###### Osync specific functions (non shared)
|
###### Osync specific functions (non shared)
|
||||||
|
|
||||||
function _CreateStateDirsLocal {
|
function _CreateStateDirsLocal {
|
||||||
local backup_dir="${1}"
|
local replica_state_dir="${1}"
|
||||||
local delete_dir="${2}"
|
__CheckArguments 1 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
|
||||||
__CheckArguments 2 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
|
|
||||||
|
|
||||||
if ! [ -d "$backup_dir" ]; then
|
if ! [ -d "$replica_state_dir" ]; then
|
||||||
$COMMAND_SUDO mkdir -p "$backup_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
$COMMAND_SUDO mkdir -p "$replica_state_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
Logger "Cannot create state dir [$backup_dir]." "CRITICAL"
|
Logger "Cannot create state dir [$replica_state_dir]." "CRITICAL"
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! [ -d "$delete_dir" ]; then
|
|
||||||
$COMMAND_SUDO mkdir -p "$delete_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
Logger "Cannot create state dir [$delete_dir]." "CRITICAL"
|
|
||||||
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"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -1399,45 +1389,34 @@ function _CreateStateDirsLocal {
|
||||||
}
|
}
|
||||||
|
|
||||||
function _CreateStateDirsRemote {
|
function _CreateStateDirsRemote {
|
||||||
local backup_dir="${1}"
|
local replica_state_dir="${1}"
|
||||||
local delete_dir="${2}"
|
__CheckArguments 1 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
|
||||||
__CheckArguments 2 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
|
|
||||||
|
|
||||||
local cmd=
|
local cmd=
|
||||||
|
|
||||||
CheckConnectivity3rdPartyHosts
|
CheckConnectivity3rdPartyHosts
|
||||||
CheckConnectivityRemoteHost
|
CheckConnectivityRemoteHost
|
||||||
|
|
||||||
cmd=$SSH_CMD' "if ! [ -d \"'$backup_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$backup_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
|
cmd=$SSH_CMD' "if ! [ -d \"'$replica_state_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$replica_state_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
|
||||||
Logger "cmd: $cmd" "DEBUG"
|
Logger "cmd: $cmd" "DEBUG"
|
||||||
eval "$cmd" &
|
eval "$cmd" &
|
||||||
WaitForTaskCompletion $! 720 1800 ${FUNCNAME[0]}
|
WaitForTaskCompletion $! 720 1800 ${FUNCNAME[0]}
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
Logger "Cannot create remote state dir [$backup_dir]." "CRITICAL"
|
Logger "Cannot create remote state dir [$replica_state_dir]." "CRITICAL"
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmd=$SSH_CMD' "if ! [ -d \"'$delete_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$delete_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
|
|
||||||
Logger "cmd: $cmd" "DEBUG"
|
|
||||||
eval "$cmd" &
|
|
||||||
WaitForTaskCompletion $! 720 1800 ${FUNCNAME[0]}
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
Logger "Cannot create remote state dir [$delete_dir]." "CRITICAL"
|
|
||||||
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"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Merge with CheckReplicaPaths ?
|
#TODO: also create deleted and backup dirs
|
||||||
function CreateStateDirs {
|
function CreateStateDirs {
|
||||||
__CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
_CreateStateDirsLocal "${INITIATOR[1]}${INITIATOR[4]}" "${INITIATOR[1]}${INITIATOR[5]}"
|
_CreateStateDirsLocal "${INITIATOR[1]}${INITIATOR[3]}"
|
||||||
if [ "$REMOTE_OPERATION" != "yes" ]; then
|
if [ "$REMOTE_OPERATION" != "yes" ]; then
|
||||||
_CreateStateDirsLocal "${TARGET[1]}${TARGET[4]}" "${TARGET[1]}${TARGET[5]}"
|
_CreateStateDirsLocal "${TARGET[1]}${TARGET[3]}"
|
||||||
else
|
else
|
||||||
_CreateStateDirsRemote "${TARGET[1]}${TARGET[4]}" "${TARGET[1]}${TARGET[5]}"
|
_CreateStateDirsRemote "${TARGET[1]}${TARGET[3]}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2677,7 +2656,6 @@ function Init {
|
||||||
#${REPLICA[8]} contains full resume count file path
|
#${REPLICA[8]} contains full resume count file path
|
||||||
|
|
||||||
# Local variables used for state filenames
|
# Local variables used for state filenames
|
||||||
|
|
||||||
local lock_filename="lock"
|
local lock_filename="lock"
|
||||||
local state_dir="state"
|
local state_dir="state"
|
||||||
local backup_dir="backup"
|
local backup_dir="backup"
|
||||||
|
@ -2774,7 +2752,6 @@ function Init {
|
||||||
function Main {
|
function Main {
|
||||||
__CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
|
__CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG
|
||||||
|
|
||||||
#TODO: Check replicas and Create StateDirs should be the same functions
|
|
||||||
CreateStateDirs
|
CreateStateDirs
|
||||||
CheckLocks
|
CheckLocks
|
||||||
Sync
|
Sync
|
||||||
|
|
47
osync.sh
47
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.1.1
|
PROGRAM_VERSION=1.1.1
|
||||||
PROGRAM_BUILD=2016080108
|
PROGRAM_BUILD=2016080106
|
||||||
IS_STABLE=yes
|
IS_STABLE=yes
|
||||||
|
|
||||||
## FUNC_BUILD=2016071902
|
## FUNC_BUILD=2016071902
|
||||||
|
@ -1299,22 +1299,12 @@ function CheckCurrentConfig {
|
||||||
###### Osync specific functions (non shared)
|
###### Osync specific functions (non shared)
|
||||||
|
|
||||||
function _CreateStateDirsLocal {
|
function _CreateStateDirsLocal {
|
||||||
local backup_dir="${1}"
|
local replica_state_dir="${1}"
|
||||||
local delete_dir="${2}"
|
|
||||||
|
|
||||||
if ! [ -d "$backup_dir" ]; then
|
if ! [ -d "$replica_state_dir" ]; then
|
||||||
$COMMAND_SUDO mkdir -p "$backup_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
$COMMAND_SUDO mkdir -p "$replica_state_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
Logger "Cannot create state dir [$backup_dir]." "CRITICAL"
|
Logger "Cannot create state dir [$replica_state_dir]." "CRITICAL"
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! [ -d "$delete_dir" ]; then
|
|
||||||
$COMMAND_SUDO mkdir -p "$delete_dir" > "$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID" 2>&1
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
Logger "Cannot create state dir [$delete_dir]." "CRITICAL"
|
|
||||||
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"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -1322,43 +1312,32 @@ function _CreateStateDirsLocal {
|
||||||
}
|
}
|
||||||
|
|
||||||
function _CreateStateDirsRemote {
|
function _CreateStateDirsRemote {
|
||||||
local backup_dir="${1}"
|
local replica_state_dir="${1}"
|
||||||
local delete_dir="${2}"
|
|
||||||
|
|
||||||
local cmd=
|
local cmd=
|
||||||
|
|
||||||
CheckConnectivity3rdPartyHosts
|
CheckConnectivity3rdPartyHosts
|
||||||
CheckConnectivityRemoteHost
|
CheckConnectivityRemoteHost
|
||||||
|
|
||||||
cmd=$SSH_CMD' "if ! [ -d \"'$backup_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$backup_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
|
cmd=$SSH_CMD' "if ! [ -d \"'$replica_state_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$replica_state_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
|
||||||
Logger "cmd: $cmd" "DEBUG"
|
Logger "cmd: $cmd" "DEBUG"
|
||||||
eval "$cmd" &
|
eval "$cmd" &
|
||||||
WaitForTaskCompletion $! 720 1800 ${FUNCNAME[0]}
|
WaitForTaskCompletion $! 720 1800 ${FUNCNAME[0]}
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
Logger "Cannot create remote state dir [$backup_dir]." "CRITICAL"
|
Logger "Cannot create remote state dir [$replica_state_dir]." "CRITICAL"
|
||||||
Logger "Command output:\n$(cat $RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID)" "ERROR"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmd=$SSH_CMD' "if ! [ -d \"'$delete_dir'\" ]; then '$COMMAND_SUDO' mkdir -p \"'$delete_dir'\"; fi" > "'$RUN_DIR/$PROGRAM.${FUNCNAME[0]}.$SCRIPT_PID'" 2>&1'
|
|
||||||
Logger "cmd: $cmd" "DEBUG"
|
|
||||||
eval "$cmd" &
|
|
||||||
WaitForTaskCompletion $! 720 1800 ${FUNCNAME[0]}
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
Logger "Cannot create remote state dir [$delete_dir]." "CRITICAL"
|
|
||||||
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"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Merge with CheckReplicaPaths ?
|
#TODO: also create deleted and backup dirs
|
||||||
function CreateStateDirs {
|
function CreateStateDirs {
|
||||||
|
|
||||||
_CreateStateDirsLocal "${INITIATOR[1]}${INITIATOR[4]}" "${INITIATOR[1]}${INITIATOR[5]}"
|
_CreateStateDirsLocal "${INITIATOR[1]}${INITIATOR[3]}"
|
||||||
if [ "$REMOTE_OPERATION" != "yes" ]; then
|
if [ "$REMOTE_OPERATION" != "yes" ]; then
|
||||||
_CreateStateDirsLocal "${TARGET[1]}${TARGET[4]}" "${TARGET[1]}${TARGET[5]}"
|
_CreateStateDirsLocal "${TARGET[1]}${TARGET[3]}"
|
||||||
else
|
else
|
||||||
_CreateStateDirsRemote "${TARGET[1]}${TARGET[4]}" "${TARGET[1]}${TARGET[5]}"
|
_CreateStateDirsRemote "${TARGET[1]}${TARGET[3]}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2569,7 +2548,6 @@ function Init {
|
||||||
#${REPLICA[8]} contains full resume count file path
|
#${REPLICA[8]} contains full resume count file path
|
||||||
|
|
||||||
# Local variables used for state filenames
|
# Local variables used for state filenames
|
||||||
|
|
||||||
local lock_filename="lock"
|
local lock_filename="lock"
|
||||||
local state_dir="state"
|
local state_dir="state"
|
||||||
local backup_dir="backup"
|
local backup_dir="backup"
|
||||||
|
@ -2665,7 +2643,6 @@ function Init {
|
||||||
|
|
||||||
function Main {
|
function Main {
|
||||||
|
|
||||||
#TODO: Check replicas and Create StateDirs should be the same functions
|
|
||||||
CreateStateDirs
|
CreateStateDirs
|
||||||
CheckLocks
|
CheckLocks
|
||||||
Sync
|
Sync
|
||||||
|
|
Loading…
Reference in New Issue