From ad4633d88c40a547a7cca86cea2a26940189cc53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oscar=20Meg=C3=ADa=20L=C3=B3pez?= Date: Sun, 16 Sep 2018 21:32:36 +0200 Subject: [PATCH 1/5] Added option OVERRIDE_BACKUP_DIRECTORIES in config file because was in README.md, but didn't work --- cya | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cya b/cya index af1329b..cba6951 100755 --- a/cya +++ b/cya @@ -120,6 +120,13 @@ then CONFIG_ARRAY[${CONFIG_DATA[0]}]="$CONFIG_DATA_VALUE" done + # Override BACKUP DIRECTORIES + if [[ CONFIG_ARRAY[OVERRIDE_BACKUP_DIRECTORIES] ]] + then + IFS=' ' read -a DATA <<< "${CONFIG_ARRAY[OVERRIDE_BACKUP_DIRECTORIES]}" + BACKUP_DIRECTORIES=("${DATA[@]}") + fi + # Update BACKUP DIRECTORIES if [[ CONFIG_ARRAY[BACKUP_DIRECTORIES] ]] then From 8c608dfb0a3bd11eb2f3b632139387373ef41cc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oscar=20Meg=C3=ADa=20L=C3=B3pez?= Date: Mon, 17 Sep 2018 06:38:25 +0200 Subject: [PATCH 2/5] Updated VERSION and changelog file --- changelog | 3 +++ cya | 2 +- version | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/changelog b/changelog index e697974..4920cc5 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +2.5 - 17 September 2018 +* Fixed Override BACKUP DIRECTORIES option that didn't work + 2.4 - 14 August 2018 * Exclude directories from mydata command diff --git a/cya b/cya index cba6951..85ac48a 100755 --- a/cya +++ b/cya @@ -20,7 +20,7 @@ HEADER ###################################################################### # Version number -VERSION="2.4" +VERSION="2.5" # Title variable TITLE="Cover Your Ass(ets)" diff --git a/version b/version index 6b4950e..95e3ba8 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.4 +2.5 From 00460d1c62ef35722a93bcf7236463a34d0c32c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oscar=20Meg=C3=ADa=20L=C3=B3pez?= Date: Mon, 17 Sep 2018 09:26:36 +0200 Subject: [PATCH 3/5] Add feature to allow subdirectories in BACKUP_DIRECTORIES option For instance, if BACKUP_DIRECTORIES="/usr/local/bin/" only will backup this subdirectory. --- changelog | 3 +++ cya | 3 ++- version | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/changelog b/changelog index 4920cc5..c41bd6c 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +2.6 - 17 September 2018 +* Add feature to allow subdirectories in BACKUP_DIRECTORIES option + 2.5 - 17 September 2018 * Fixed Override BACKUP DIRECTORIES option that didn't work diff --git a/cya b/cya index 85ac48a..940b62f 100755 --- a/cya +++ b/cya @@ -20,7 +20,7 @@ HEADER ###################################################################### # Version number -VERSION="2.5" +VERSION="2.6" # Title variable TITLE="Cover Your Ass(ets)" @@ -442,6 +442,7 @@ RSYNC_BACKUP_GO() { # Run directory backup echo -n "Backing up ${BACKUP_DIRECTORY} ... " + SUDO_RUN "mkdir -p $RESTORE_DIR/$BACKUP_NAME${BACKUP_DIRECTORY}" SUDO_RUN "rsync -a --delete-excluded $EXCLUDE_DIRS$BASE_DIR${BACKUP_DIRECTORY} $RESTORE_DIR/$BACKUP_NAME${BACKUP_DIRECTORY}" echo " complete" BACKUP_STATE="on" diff --git a/version b/version index 95e3ba8..5154b3f 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.5 +2.6 From 852c6d0245c981d23be53c381147caa8668e49be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oscar=20Meg=C3=ADa=20L=C3=B3pez?= Date: Wed, 19 Sep 2018 10:54:04 +0200 Subject: [PATCH 4/5] Added feature to allow backup/restore directories with spaces To add space in directory use the escape secuence to add space in path (backslash before). This is an example in cya.conf: BACKUP_DIRECTORIES="/This\ is\ one/a\ test/" OVERRIDE_BACKUP_DIRECTORIES="/This\ is\ other/second\ test/" EXCLUDE/This\ is\ other/="exclude\ me/" BACKUP_FILES="/This\ is\ third/test\ third/cya.test /This\ is\ third/test\ third/cya\ test\ with\ spaces" Tested save and restore. Works on directories and files with spaces. Also works on EXCLUDE directory option with spaces. --- cya | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/cya b/cya index 940b62f..cec4423 100755 --- a/cya +++ b/cya @@ -20,7 +20,7 @@ HEADER ###################################################################### # Version number -VERSION="2.6" +VERSION="2.7" # Title variable TITLE="Cover Your Ass(ets)" @@ -114,7 +114,7 @@ then for CONFIG_VARS_DATA in "${CONFIG_VARS[@]}" do # Split data - IFS='=' read -a CONFIG_DATA <<< "${CONFIG_VARS_DATA}" + IFS='=' read -ra CONFIG_DATA <<< "${CONFIG_VARS_DATA}" # Remove first and last quotes CONFIG_DATA_VALUE="${CONFIG_DATA[1]//\"/}" CONFIG_ARRAY[${CONFIG_DATA[0]}]="$CONFIG_DATA_VALUE" @@ -344,7 +344,7 @@ CYA_LOG_INSERT() { # SUDO call ###################################################################### SUDO_RUN () { - bash_cli=`sudo $1` + bash_cli=`eval sudo $1` } # SUDO Write To File @@ -442,8 +442,8 @@ RSYNC_BACKUP_GO() { # Run directory backup echo -n "Backing up ${BACKUP_DIRECTORY} ... " - SUDO_RUN "mkdir -p $RESTORE_DIR/$BACKUP_NAME${BACKUP_DIRECTORY}" - SUDO_RUN "rsync -a --delete-excluded $EXCLUDE_DIRS$BASE_DIR${BACKUP_DIRECTORY} $RESTORE_DIR/$BACKUP_NAME${BACKUP_DIRECTORY}" + SUDO_RUN "mkdir -p '$RESTORE_DIR/$BACKUP_NAME${BACKUP_DIRECTORY}'" + SUDO_RUN "rsync -a --delete-excluded '$EXCLUDE_DIRS$BASE_DIR${BACKUP_DIRECTORY}' '$RESTORE_DIR/$BACKUP_NAME${BACKUP_DIRECTORY}'" echo " complete" BACKUP_STATE="on" fi @@ -463,7 +463,7 @@ RSYNC_BACKUP_GO() { then # Run file backup echo -n "Backing up ${CORE_BACKUP_FILE} ... " - SUDO_RUN "rsync -a $BASE_DIR${CORE_BACKUP_FILE} $RESTORE_DIR/$BACKUP_NAME${CORE_BACKUP_FILE}" + SUDO_RUN "rsync -a '$BASE_DIR${CORE_BACKUP_FILE}' '$RESTORE_DIR/$BACKUP_NAME${CORE_BACKUP_FILE}'" echo " complete" BACKUP_STATE="on" fi @@ -494,7 +494,7 @@ RSYNC_BACKUP_GO() { then # Run file backup echo -n "Backing up ${BACKUP_FILE} ... " - SUDO_RUN "rsync -a --relative $SETPATH${BACKUP_FILE} $RESTORE_DIR/$BACKUP_NAME/$CYA_BACKUP_FILES_DIR" + SUDO_RUN "rsync -a --relative '$SETPATH${BACKUP_FILE}' '$RESTORE_DIR/$BACKUP_NAME/$CYA_BACKUP_FILES_DIR'" echo " complete" BACKUP_STATE="on" fi @@ -662,7 +662,8 @@ RUN_RSYNC() { echo -n "$CYA_LOG" # Run directory rsync - SUDO_RUN "rsync -a$DELETE_FLAG $EXCLUDE_DIRS$RESTORE_DIR/$BACKUP_NAME${BACKUP_DIRECTORY} $BASE_DIR${BACKUP_DIRECTORY}" + SUDO_RUN "mkdir -p '$BASE_DIR${BACKUP_DIRECTORY}'" + SUDO_RUN "rsync -a$DELETE_FLAG '$EXCLUDE_DIRS$RESTORE_DIR/$BACKUP_NAME${BACKUP_DIRECTORY}' '$BASE_DIR${BACKUP_DIRECTORY}'" CYA_LOG="complete" echo "$CYA_LOG" @@ -688,7 +689,7 @@ RUN_RSYNC() { echo -n "$CYA_LOG" # Run file rsync - SUDO_RUN "rsync -a $RESTORE_DIR/$BACKUP_NAME${CORE_BACKUP_FILE} $BASE_DIR${CORE_BACKUP_FILE}" + SUDO_RUN "rsync -a '$RESTORE_DIR/$BACKUP_NAME${CORE_BACKUP_FILE}' '$BASE_DIR${CORE_BACKUP_FILE}'" echo " complete" CYA_LOG_INSERT "Restoring ${CORE_BACKUP_FILE} ... complete" @@ -734,7 +735,7 @@ RUN_RSYNC() { echo -n "$CYA_LOG" # Run file rsync - SUDO_RUN "rsync -a $RESTORE_DIR/$BACKUP_NAME/$CYA_BACKUP_FILES_DIR/ $BASE_DIR" + SUDO_RUN "rsync -a '$RESTORE_DIR/$BACKUP_NAME/$CYA_BACKUP_FILES_DIR/' '$BASE_DIR'" CYA_LOG="complete" echo "$CYA_LOG" @@ -1579,7 +1580,7 @@ then # Verify directory before adding if [ -d "${SOURCE_DIR}${EXCLUDE_ENTRY[0]}" ] then - EXCLUDE_DIRS+="--exclude=${EXCLUDE_ENTRY[0]} " + EXCLUDE_DIRS+="--exclude='{EXCLUDE_ENTRY[0]}' " fi done fi @@ -1590,7 +1591,7 @@ then SUDO_CHECK echo $'\n'"-> Please be patient as backup may take a long time <-"$'\n' echo -n "Backing up $SOURCE_DIR to $DESTINATION_DIR ... " - SUDO_RUN "rsync -as $EXCLUDE_DIRS --delete $SOURCE_DIR $DESTINATION_DIR" + SUDO_RUN "rsync -as $EXCLUDE_DIRS --delete '$SOURCE_DIR' '$DESTINATION_DIR'" echo "Complete!" else ERROR_BANNER "Backup failed due to invalid path(s)" From 1848dd5102b3f948b5dbd226c338a89e4a4dd69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oscar=20Meg=C3=ADa=20L=C3=B3pez?= Date: Wed, 19 Sep 2018 10:58:59 +0200 Subject: [PATCH 5/5] Updated changelog and version --- changelog | 3 +++ version | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/changelog b/changelog index c41bd6c..cf4eaaa 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +2.7 - 19 September 2018 +* Add feature to allow spaces in path + 2.6 - 17 September 2018 * Add feature to allow subdirectories in BACKUP_DIRECTORIES option diff --git a/version b/version index 5154b3f..1effb00 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.6 +2.7