From a40a733902eec7a8fa22364fa7bd741892bbab30 Mon Sep 17 00:00:00 2001 From: rastkov Date: Tue, 29 Oct 2013 12:07:30 +0100 Subject: Update rsync_tmbackup.sh Using find instead of ls to find the last and second last directory used for backup. --- rsync_tmbackup.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rsync_tmbackup.sh b/rsync_tmbackup.sh index bb961c2..df3413f 100644 --- a/rsync_tmbackup.sh +++ b/rsync_tmbackup.sh @@ -39,8 +39,9 @@ fi NOW=$(date +"%Y-%m-%d-%H%M%S") DEST=$DEST_FOLDER/$NOW -LAST_TIME=$(ls -1 $DEST_FOLDER | grep "\d\d\d\d-\d\d-\d\d-\d\d\d\d\d\d" | tail -n 1) -PREVIOUS_DEST=$DEST_FOLDER/$LAST_TIME +LAST_TIME=$(find $DEST_FOLDER -maxdepth 1 -type d -iname "*-*[0-9]" | sort | tail -n 1) +echo "############################################ $LAST_TIME" +PREVIOUS_DEST=$LAST_TIME INPROGRESS_FILE=$DEST_FOLDER/backup.inprogress # ----------------------------------------------------------------------------- @@ -52,10 +53,10 @@ if [ -f "$INPROGRESS_FILE" ]; then # - Last backup is moved to current backup folder so that it can be resumed. # - 2nd to last backup becomes last backup. echo "$INPROGRESS_FILE already exists - the previous backup failed or was interrupted. Backup will resume from there." - LINE_COUNT=$(ls -1 $DEST_FOLDER | grep "\d\d\d\d-\d\d-\d\d-\d\d\d\d\d\d" | tail -n 2 | wc -l) + LINE_COUNT=$(find $DEST_FOLDER -maxdepth 1 -type d -iname "*-*[0-9]" | sort | tail -n 2 | wc -l) mv $PREVIOUS_DEST $DEST if [ "$LINE_COUNT" -gt 1 ]; then - SECOND_LAST_TIME=$(ls -1 $DEST_FOLDER | grep "\d\d\d\d-\d\d-\d\d-\d\d\d\d\d\d" | tail -n 2 | head -n 1) + SECOND_LAST_TIME=$(find $DEST_FOLDER -maxdepth 1 -type d -iname "*-*[0-9]" | sort | tail -n 2 | head -n 1) LAST_TIME=$SECOND_LAST_TIME else LAST_TIME="" -- cgit v1.2.3 From 8318db90c5e8975e181735bf9c68b9bc0b54731e Mon Sep 17 00:00:00 2001 From: rastkov Date: Tue, 29 Oct 2013 12:15:38 +0100 Subject: Update rsync_tmbackup.sh --- rsync_tmbackup.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/rsync_tmbackup.sh b/rsync_tmbackup.sh index df3413f..3328b83 100644 --- a/rsync_tmbackup.sh +++ b/rsync_tmbackup.sh @@ -40,7 +40,6 @@ fi NOW=$(date +"%Y-%m-%d-%H%M%S") DEST=$DEST_FOLDER/$NOW LAST_TIME=$(find $DEST_FOLDER -maxdepth 1 -type d -iname "*-*[0-9]" | sort | tail -n 1) -echo "############################################ $LAST_TIME" PREVIOUS_DEST=$LAST_TIME INPROGRESS_FILE=$DEST_FOLDER/backup.inprogress -- cgit v1.2.3 From 27a0a1881f36ce41fc5d6f21de2df9f96e812339 Mon Sep 17 00:00:00 2001 From: rastkov Date: Fri, 1 Nov 2013 08:48:21 +0100 Subject: Update rsync_tmbackup.sh Using find with regex instead of glob --- rsync_tmbackup.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rsync_tmbackup.sh b/rsync_tmbackup.sh index 3328b83..60adb6a 100644 --- a/rsync_tmbackup.sh +++ b/rsync_tmbackup.sh @@ -39,7 +39,7 @@ fi NOW=$(date +"%Y-%m-%d-%H%M%S") DEST=$DEST_FOLDER/$NOW -LAST_TIME=$(find $DEST_FOLDER -maxdepth 1 -type d -iname "*-*[0-9]" | sort | tail -n 1) +LAST_TIME=$(find $DEST_FOLDER -maxdepth 1 -type d -regextype posix-extended -regex "^.*[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" | sort | tail -n 1) PREVIOUS_DEST=$LAST_TIME INPROGRESS_FILE=$DEST_FOLDER/backup.inprogress @@ -52,10 +52,10 @@ if [ -f "$INPROGRESS_FILE" ]; then # - Last backup is moved to current backup folder so that it can be resumed. # - 2nd to last backup becomes last backup. echo "$INPROGRESS_FILE already exists - the previous backup failed or was interrupted. Backup will resume from there." - LINE_COUNT=$(find $DEST_FOLDER -maxdepth 1 -type d -iname "*-*[0-9]" | sort | tail -n 2 | wc -l) + LINE_COUNT=$(find $DEST_FOLDER -maxdepth 1 -type d -regextype posix-extended -regex "^.*[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" | sort | tail -n 2 | wc -l) mv $PREVIOUS_DEST $DEST if [ "$LINE_COUNT" -gt 1 ]; then - SECOND_LAST_TIME=$(find $DEST_FOLDER -maxdepth 1 -type d -iname "*-*[0-9]" | sort | tail -n 2 | head -n 1) + SECOND_LAST_TIME=$(find $DEST_FOLDER -maxdepth 1 -type d -regextype posix-extended -regex "^.*[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" | sort | tail -n 2 | head -n 1) LAST_TIME=$SECOND_LAST_TIME else LAST_TIME="" -- cgit v1.2.3 From 99258d80abc2411e14a4ead5cdc019842b322d6e Mon Sep 17 00:00:00 2001 From: rastkov Date: Fri, 1 Nov 2013 14:32:59 +0100 Subject: Update rsync_tmbackup.sh Set LAST_TIME, LINE_CONUT and SECOND_LAST_TIME based on `uname -s` output for Mac OS compatibility. --- rsync_tmbackup.sh | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/rsync_tmbackup.sh b/rsync_tmbackup.sh index 60adb6a..8a0909c 100644 --- a/rsync_tmbackup.sh +++ b/rsync_tmbackup.sh @@ -39,7 +39,23 @@ fi NOW=$(date +"%Y-%m-%d-%H%M%S") DEST=$DEST_FOLDER/$NOW -LAST_TIME=$(find $DEST_FOLDER -maxdepth 1 -type d -regextype posix-extended -regex "^.*[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" | sort | tail -n 1) + +# Set LAST_TIME, LINE_CONUT and SECOND_LAST_TIME based on uname -s output for Mac OS compatibility +# I guess there might be an more elegant way to do this +case `uname -s` in + Darwin) + LAST_TIME=$(find -E $DEST_FOLDER -type d -iregex "./[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" -prune | sort | tail -n 1) + LINE_COUNT=$(find -E $DEST_FOLDER -type d -iregex "./[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" -prune | sort | tail -n 2 | wc -l) + SECOND_LAST_TIME=$(find -E $DEST_FOLDER -type d -iregex "./[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" -prune | sort | tail -n 2 | head -n 1) + ;; + + *) + LAST_TIME=$(find $DEST_FOLDER -type d -regextype posix-extended -regex "^.*[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" -prune | sort | tail -n 1) + LINE_COUNT=$(find $DEST_FOLDER -type d -regextype posix-extended -regex "^.*[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" -prune | sort | tail -n 2 | wc -l) + SECOND_LAST_TIME=$(find $DEST_FOLDER -type d -regextype posix-extended -regex "^.*[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" -prune | sort | tail -n 2 | head -n 1) + ;; +esac + PREVIOUS_DEST=$LAST_TIME INPROGRESS_FILE=$DEST_FOLDER/backup.inprogress @@ -52,10 +68,9 @@ if [ -f "$INPROGRESS_FILE" ]; then # - Last backup is moved to current backup folder so that it can be resumed. # - 2nd to last backup becomes last backup. echo "$INPROGRESS_FILE already exists - the previous backup failed or was interrupted. Backup will resume from there." - LINE_COUNT=$(find $DEST_FOLDER -maxdepth 1 -type d -regextype posix-extended -regex "^.*[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" | sort | tail -n 2 | wc -l) + mv $PREVIOUS_DEST $DEST - if [ "$LINE_COUNT" -gt 1 ]; then - SECOND_LAST_TIME=$(find $DEST_FOLDER -maxdepth 1 -type d -regextype posix-extended -regex "^.*[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}" | sort | tail -n 2 | head -n 1) + if [ "$LINE_COUNT" -gt 1 ]; then LAST_TIME=$SECOND_LAST_TIME else LAST_TIME="" -- cgit v1.2.3