X-Git-Url: https://codewiz.org/gitweb?p=wizbackup.git;a=blobdiff_plain;f=wizbackup;h=746cfba7022435e3c1924188fa2c09ed329c0ce0;hp=b0a74a323d0bffe90b26921513f1509cff196aaa;hb=HEAD;hpb=c02953445f24eaa776092b516abe9e8be33c0149 diff --git a/wizbackup b/wizbackup index b0a74a3..746cfba 100755 --- 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 @@ -116,7 +116,7 @@ do_init() { do_prune() { local num_snapshots="$1" local suffix="$2" - local oldest="$(ls -d [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$suffix | head -n -$num_snapshots)" + local oldest="$(ls 2>/dev/null -d [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$suffix | head -n -$num_snapshots)" for old in $oldest; do echo "$(date): Removing oldest snapshot(s): $old..." rm -rf "$old" || exit 669 @@ -173,8 +173,7 @@ do_test() { # make sure to be root if (( `id -u` != 0 )); then { echo "Sorry, must be root. Exiting..."; exit; } fi -echo "$(date): BEGIN backup: $0 $@" -echo "$(date): $0 $SRC $DEST $@" +echo "$(date): BEGIN backup: $0 $SRC $DEST $@" do_init do_prune 6 "" do_prune 4 "-weekly"