diff --git a/changelog b/changelog index e697974..cf4eaaa 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,12 @@ +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 + +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 af1329b..cec4423 100755 --- a/cya +++ b/cya @@ -20,7 +20,7 @@ HEADER ###################################################################### # Version number -VERSION="2.4" +VERSION="2.7" # Title variable TITLE="Cover Your Ass(ets)" @@ -114,12 +114,19 @@ 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" 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 @@ -337,7 +344,7 @@ CYA_LOG_INSERT() { # SUDO call ###################################################################### SUDO_RUN () { - bash_cli=`sudo $1` + bash_cli=`eval sudo $1` } # SUDO Write To File @@ -435,7 +442,8 @@ RSYNC_BACKUP_GO() { # Run directory backup echo -n "Backing up ${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 @@ -455,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 @@ -486,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 @@ -654,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" @@ -680,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" @@ -726,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" @@ -1571,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 @@ -1582,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)" diff --git a/version b/version index 6b4950e..1effb00 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.4 +2.7