# 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!
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
if [ "${SRC%:*}" == "rsync" ]; then
RSYNC_OPTS="$RSYNC_OPTS --password-file=/etc/wizbackup/rsync_password --contimeout 10"
else
- export RSYNC_RSH="ssh -i /etc/wizbackup/ssh_id -c arcfour -x -o VerifyHostKeyDNS=yes -o StrictHostKeyChecking=no"
+ export RSYNC_RSH="ssh -i /etc/wizbackup/ssh_id -x -o VerifyHostKeyDNS=yes -o StrictHostKeyChecking=no"
fi
# Error tolerant grep
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
# 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"