# Based on incremental-backup 0.1 by Matteo Mattei
#
# Copyright 2006 Matteo Mattei <matteo.mattei@gmail.com>
-# Copyright 2007, 2008, 2009, 2010, 2011, 2015 Bernie Innocenti <bernie@codewiz.org>
+# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2015 Bernie Innocenti <bernie@codewiz.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# Destination directory (will be created if it doesn't exist)
DEST=$1; shift
+CONF_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!
RSYNC_OPTS="-HAXa --stats --timeout 1800 --numeric-ids --delete --delete-excluded --ignore-errors $@"
fi
DEST="`echo $DEST | sed -e 's/\/$//'`"
+if [ -f "$CONF_FILE" ]; then
+ source /etc/wizbackup/wizbackup.conf
+fi
# Use "backup" ssh key with ssh protocol, or password file for rsync protocol
if [ "${SRC%:*}" == "rsync" ]; then
# make sure to be root
if (( `id -u` != 0 )); then { echo "Sorry, must be root. Exiting..."; exit; } fi
-echo "$(date): BEGIN backup: $SRC -> $DEST"
+echo "$(date): BEGIN backup: $0 $@"
echo "$(date): $0 $SRC $DEST $@"
do_init
do_prune 6 ""
if [ "`tty`" = "not a tty" ]; then
LOGFILE="$LOGDIR/$LOGGROUP-$today.log"
+ FAILLOG="$LOGDIR/$LOGGROUP-fail-$today.log"
+ REPORT="$LOGDIR/$LOGGROUP-report-$today.log"
else
LOGFILE=/dev/stdout
+ FAILLOG=/dev/stderr
+ REPORT=/dev/stdout
fi
for host in $HOSTS; do
end_time=$(date +%s)
report="$(date +%s):$host:$(($end_time-$start_time)):$result"
- echo $report >>$LOGDIR/$LOGGROUP-report-$today.log
- [ $result != 0 ] && echo "$report" >>$LOGDIR/$LOGGROUP-fail-$today.log
+ echo $report >>"$REPORT"
+ [ $result != 0 ] && echo "$report" >>"$FAILLOG"
done
-# TODO: send fail log email report
-# TODO: delete logs older than 45 days
+if [ -s "$FAILLOG" ]; then
+ cat "$FAILLOG"
+ exit 1
+fi
+
+# TODO: delete logs older than N days