From f4116ba69cf32a82c4d515b601b60e69976fdaf2 Mon Sep 17 00:00:00 2001 From: deajan Date: Sat, 26 Sep 2015 13:43:25 +0200 Subject: [PATCH] Minor enhancements --- upgrade-v1.0x-v1.1x.sh | 166 ++++++++++++++++++++++------------------- 1 file changed, 90 insertions(+), 76 deletions(-) diff --git a/upgrade-v1.0x-v1.1x.sh b/upgrade-v1.0x-v1.1x.sh index 3404d5a..148889e 100755 --- a/upgrade-v1.0x-v1.1x.sh +++ b/upgrade-v1.0x-v1.1x.sh @@ -4,7 +4,7 @@ PROGRAM="Osync instance upagrade script" # Rsync based two way sync engine with AUTHOR="(L) 2015 by Orsiris \"Ozy\" de Jong" CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr" PROGRAM_VERSION="1.0x to v1.1" -PROGRAM_BUILD=2015092501 +PROGRAM_BUILD=2015092601 function Init { OSYNC_DIR=".osync_workdir" @@ -17,45 +17,45 @@ function Init { FAILED_DELETE_LIST_FILENAME="-failed-delete-$SYNC_ID" if [ "${SLAVE_SYNC_DIR:0:6}" == "ssh://" ]; then - REMOTE_SYNC="yes" - - # remove leadng 'ssh://' - uri=${SLAVE_SYNC_DIR#ssh://*} - if [[ "$uri" == *"@"* ]]; then - # remove everything after '@' - REMOTE_USER=${uri%@*} - else - REMOTE_USER=$LOCAL_USER - fi - - if [ "$SSH_RSA_PRIVATE_KEY" == "" ]; then - SSH_RSA_PRIVATE_KEY=~/.ssh/id_rsa - fi - - # remove everything before '@' - _hosturiandpath=${uri#*@} - # remove everything after first '/' - _hosturi=${_hosturiandpath%%/*} - if [[ "$_hosturi" == *":"* ]]; then - REMOTE_PORT=${_hosturi##*:} - else - REMOTE_PORT=22 - fi - REMOTE_HOST=${_hosturi%%:*} + REMOTE_SYNC="yes" + + # remove leadng 'ssh://' + uri=${SLAVE_SYNC_DIR#ssh://*} + if [[ "$uri" == *"@"* ]]; then + # remove everything after '@' + REMOTE_USER=${uri%@*} + else + REMOTE_USER=$LOCAL_USER + fi + + if [ "$SSH_RSA_PRIVATE_KEY" == "" ]; then + SSH_RSA_PRIVATE_KEY=~/.ssh/id_rsa + fi + + # remove everything before '@' + _hosturiandpath=${uri#*@} + # remove everything after first '/' + _hosturi=${_hosturiandpath%%/*} + if [[ "$_hosturi" == *":"* ]]; then + REMOTE_PORT=${_hosturi##*:} + else + REMOTE_PORT=22 + fi + REMOTE_HOST=${_hosturi%%:*} # remove everything before first '/' - SLAVE_SYNC_DIR=${_hosturiandpath#*/} - fi + SLAVE_SYNC_DIR=${_hosturiandpath#*/} + fi SSH_CMD="$(type -p ssh) $SSH_COMP -i $SSH_RSA_PRIVATE_KEY $REMOTE_USER@$REMOTE_HOST -p $REMOTE_PORT" } function Usage { - echo "$PROGRAM $PROGRAM_VERSION $PROGRAM_BUILD" - echo $AUTHOR - echo $CONTACT - echo "" - echo "This script migrates osync v1.0x setups to v1.1 by updating state filenames and config files." + echo "$PROGRAM $PROGRAM_VERSION $PROGRAM_BUILD" + echo $AUTHOR + echo $CONTACT + echo "" + echo "This script migrates osync v1.0x setups to v1.1 by updating state filenames and config files." echo "" echo "Usage: upgrade.sh /path/to/config_file.conf" echo "Usage: upgrade.sh --master=/path/to/master/replica --slave=/path/to/local/slave/replica --sync-id=existing_id" @@ -64,39 +64,40 @@ function Usage { echo "If config file is provided, the config file itself and both replicas from config file will be updated." echo "If no config file provided, assume you run the update script just like any other quicksync task." echo "If sync-id is not specified, it will assume handling a quicksync task." - exit 128 + exit 128 } function CheckEnvironment { - if [ "$REMOTE_SYNC" == "yes" ]; then - if ! type -p ssh > /dev/null 2>&1 - then - Logger "ssh not present. Cannot start sync." "CRITICAL" - return 1 - fi - fi - - if ! type -p rsync > /dev/null 2>&1 - then - Logger "rsync not present. Sync cannot start." "CRITICAL" - return 1 - fi + if [ "$REMOTE_SYNC" == "yes" ]; then + if ! type -p ssh > /dev/null 2>&1 + then + Logger "ssh not present. Cannot start sync." "CRITICAL" + return 1 + fi + fi + + if ! type -p rsync > /dev/null 2>&1 + then + Logger "rsync not present. Sync cannot start." "CRITICAL" + return 1 + fi } function LoadConfigFile { - local config_file="${1}" - - if [ ! -f "$config_file" ]; then - echo "Cannot load configuration file [$config_file]. Sync cannot start." - exit 1 - elif [[ "$1" != *".conf" ]]; then - echo "Wrong configuration file supplied [$config_file]. Sync cannot start." - exit 1 - else - egrep '^#|^[^ ]*=[^;&]*' "$config_file" > "./osync.$FUNCNAME.$SCRIPT_PID" - # Shellcheck source=./sync.conf - source "./osync.$FUNCNAME.$SCRIPT_PID" - fi + local config_file="${1}" + + if [ ! -f "$config_file" ]; then + echo "Cannot load configuration file [$config_file]. Sync cannot start." + exit 1 + elif [[ "$1" != *".conf" ]]; then + echo "Wrong configuration file supplied [$config_file]. Sync cannot start." + exit 1 + else + egrep '^#|^[^ ]*=[^;&]*' "$config_file" > "./osync.$FUNCNAME.$$" + # Shellcheck source=./sync.conf + source "./osync.$FUNCNAME.$$" + rm -f "./osync.$FUNCNAME.$$" + fi } function _RenameStateFilesLocal { @@ -240,16 +241,23 @@ function _RenameStateFilesLocal { rewrite=true fi fi + + if [ $rewrite == true ]; then + echo "State dir rewritten." + else + echo "Nothing rewritten in state dir." + fi } function _RenameStateFilesRemote { echo "Connecting remotely to rewrite state files in [$1]." -$SSH_CMD state_dir="${1}" DELETED_LIST_FILENAME="$DELETED_LIST_FILENAME" FAILED_DELETE_LIST_FILENAME="$FAILED_DELETE_LIST_FILENAME" 'bash -x -s' << 'ENDSSH' +$SSH_CMD state_dir="${1}" DELETED_LIST_FILENAME="$DELETED_LIST_FILENAME" FAILED_DELETE_LIST_FILENAME="$FAILED_DELETE_LIST_FILENAME" 'bash -s' << 'ENDSSH' # Make sure there is no ending slash state_dir="${state_dir%/}/" + rewrite=false if [ -f "$state_dir""master"$DELETED_LIST_FILENAME ]; then mv -f "$state_dir""master"$DELETED_LIST_FILENAME "$state_dir""initiator"$DELETED_LIST_FILENAME @@ -275,6 +283,12 @@ $SSH_CMD state_dir="${1}" DELETED_LIST_FILENAME="$DELETED_LIST_FILENAME" FAILED_ rewrite=true fi fi + + if [ $rewrite == true ]; then + echo "State dir rewritten." + else + echo "Nothing rewritten in state dir." + fi ENDSSH } @@ -285,7 +299,7 @@ function RenameStateFiles { else _RenameStateFilesRemote "$SLAVE_SYNC_DIR/$OSYNC_DIR/$STATE_DIR" fi -} +} function RewriteConfigFiles { local config_file="${1}" @@ -309,22 +323,22 @@ _QUICKSYNC=0 for i in "$@" do - case $i in - --master=*) - no_maxtime=1 - MASTER_SYNC_DIR=${i##*=} + case $i in + --master=*) + no_maxtime=1 + MASTER_SYNC_DIR=${i##*=} QUICK_SYNC=$(($_QUICKSYNC + 1)) - ;; - --slave=*) - SLAVE_SYNC_DIR=${i##*=} + ;; + --slave=*) + SLAVE_SYNC_DIR=${i##*=} QUICK_SYNC=$(($_QUICKSYNC + 1)) - ;; - --rsakey=*) - SSH_RSA_PRIVATE_KEY=${i##*=} - ;; - --sync-id=*) - SYNC_ID=${i##*=} - ;; + ;; + --rsakey=*) + SSH_RSA_PRIVATE_KEY=${i##*=} + ;; + --sync-id=*) + SYNC_ID=${i##*=} + ;; esac done