Fix monthly backups not being rotated.
authorSugar Labs BOFH <sysadmin@sugarlabs.org>
Thu, 2 Feb 2017 03:10:01 +0000 (22:10 -0500)
committerSugar Labs BOFH <sysadmin@sugarlabs.org>
Thu, 2 Feb 2017 03:10:01 +0000 (22:10 -0500)
Two distinct bugs in bash variable manipulation:
 - "$DATE-monthly" should have been "${DATE}-monthly"
 - "date +%d" outputs "01" and not "1".

Yes, my bash-fu is weak.

wizbackup

index b0a74a323d0bffe90b26921513f1509cff196aaa..fffd3b9f11f08d1440bdbb69bfe3f60221f349e0 100755 (executable)
--- a/wizbackup
+++ b/wizbackup
@@ -38,7 +38,7 @@ SRC=$1; shift
 # Destination directory (will be created if it doesn't exist)
 DEST=$1; shift
 
-CONF_FILE="/etc/wizbackup/wizbackup.conf"
+CONFIG_FILE="/etc/wizbackup/wizbackup.conf"
 
 # NOTE: --timeout needs to be large enough: if a large dir tree don't change a lot of time can pass without I/O
 # NOTE: --inplace will clobber linked files in older snapshots. DON'T USE IT!
@@ -51,16 +51,16 @@ MONTHS=3
 MIN_FREE_GB=10
 
 RESULT=500
-DATE=$(date +"%Y%m%d")
-if [ $(date +"%d") = 1 ]; then
-       DATE="$DATE-monthly"
-elif [ $(date +"%w") = 0 ]; then
-       DATE="$DATE-weekly"
+DATE="$(date +"%Y%m%d")"
+if [ $(date +"%d") -eq 1 ]; then
+       DATE="${DATE}-monthly"
+elif [ $(date +"%w") -eq 0 ]; then
+       DATE="${DATE}-weekly"
 fi
 DEST="`echo $DEST | sed -e 's/\/$//'`"
 
-if [ -f "$CONF_FILE" ]; then
-       source /etc/wizbackup/wizbackup.conf
+if [ -f "$CONFIG_FILE" ]; then
+       source "$CONFIG_FILE"
 fi
 
 # Use "backup" ssh key with ssh protocol, or password file for rsync protocol