diff --git a/dev/n_osync.sh b/dev/n_osync.sh index 08165db..ff615a9 100644 --- a/dev/n_osync.sh +++ b/dev/n_osync.sh @@ -7,7 +7,7 @@ PROGRAM="osync" # Rsync based two way sync engine with fault tolerance AUTHOR="(C) 2013-2019 by Orsiris de Jong" CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr" PROGRAM_VERSION=1.3.0-pre-rc1 -PROGRAM_BUILD=2019052010 +PROGRAM_BUILD=2019052011 IS_STABLE=false CONFIG_FILE_REVISION_REQUIRED=1.3.0 @@ -2428,28 +2428,32 @@ function _SummaryFromRsyncFile { __CheckArguments 3 $# "$@" #__WITH_PARANOIA_DEBUG if [ -f "$summaryFile" ]; then - while read -r file; do - # grep -E "^<|^>|^\." = Remove all lines that do not begin with '<', '>' or '.' to deal with a bizarre bug involving rsync 3.0.6 / CentOS 6 and --skip-compress showing 'adding zip' line for every skipped compressed extension - if echo "$file" | grep -E "^<|^>|^\." > /dev/null 2>&1; then - # awk removes first part of line until space, then show all others - # We don't use awk '$1="";print $0' since it would keep a space as first character - Logger "+ $direction $replicaPath$(echo "$file" | awk '{for (i=2; i>" ]; then - TARGET_UPDATES_COUNT=$((TARGET_UPDATES_COUNT+1)) - elif [ "$direction" == "<<" ]; then - INITIATOR_UPDATES_COUNT=$((INITIATOR_UPDATES_COUNT+1)) - fi - fi - if echo "$file" | grep -E "\*deleting" > /dev/null 2>&1; then - if [ "$direction" == ">>" ]; then - Logger "- $direction $replicaPath$(echo "$file" | awk '{for (i=2; i|^\." = Remove all lines that do not begin with '<', '>' or '.' to deal with a bizarre bug involving rsync 3.0.6 / CentOS 6 and --skip-compress showing 'adding zip' l$ + if echo "$file" | grep -E "^<|^>|^\.|^\*" > /dev/null 2>&1; then + # Check for time attribute changes only (eg rsync output '.d..t......' + if echo "$file" | grep -E "\..\.\.t\.\.\.\.\.\." > /dev/null 2>&1; then + verb="TIMESTAMP" + elif echo "$file" | grep -E "\*deleting" > /dev/null 2>&1; then + verb="DELETE" + if [ "$direction" == ">>" ]; then + TARGET_DELETES_COUNT=$((TARGET_DELETES_COUNT+1)) + elif [ "$direction" == "<<" ]; then + INITIATOR_DELETES_COUNT=$((INITIATOR_DELETES_COUNT+1)) + fi + else + verb="UPDATE" + if [ "$direction" == ">>" ]; then + TARGET_UPDATES_COUNT=$((TARGET_UPDATES_COUNT+1)) + elif [ "$direction" == "<<" ]; then + INITIATOR_UPDATES_COUNT=$((INITIATOR_UPDATES_COUNT+1)) + fi + fi + # awk removes first part of line until space, then show all others + # We don't use awk '$1="";print $0' since it would keep a space as first character + Logger "$verb $direction $replicaPath$(echo "$file" | awk '{for (i=2; i>" ]; then TARGET_DELETES_COUNT=$((TARGET_DELETES_COUNT+1)) elif [ "$direction" == "<<" ]; then