Merge branch 'master' of ssh://codewiz.org/git/bernie/wizbackup
authorSugar Labs BOFH <sysadmin@sugarlabs.org>
Sun, 17 May 2015 05:40:58 +0000 (01:40 -0400)
committerSugar Labs BOFH <sysadmin@sugarlabs.org>
Sun, 17 May 2015 05:40:58 +0000 (01:40 -0400)
Conflicts:
wizbackup

wizbackup
wizbackup-driver

index c88cc7e11861aae6220690401a0dadec5f8e302f..39534ac7203b67f96070e7b8666f8fa75183fd55 100755 (executable)
--- a/wizbackup
+++ b/wizbackup
@@ -4,7 +4,7 @@
 # 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
@@ -38,6 +38,8 @@ SRC=$1; shift
 # 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 $@"
@@ -57,6 +59,9 @@ elif [ $(date +"%w") = 0 ]; then
 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
@@ -168,7 +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: $SRC -> $DEST"
+echo "$(date): BEGIN backup: $0 $@"
 echo "$(date): $0 $SRC $DEST $@"
 do_init
 do_prune 6 ""
index e85d41f2f81f3b3b26569d0dee58b71f0ddf03f1..957571cb757ed9f3a2857ffd5677b75dcb54bfa7 100755 (executable)
@@ -40,8 +40,12 @@ mkdir -p $LOCKDIR
 
 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
@@ -57,9 +61,13 @@ 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