]> arthur.barton.de Git - backup-script.git/blobdiff - bin/backup-script-wrapper
Default system excludes: Only exclude content, not directory itself
[backup-script.git] / bin / backup-script-wrapper
index b3b6d5e413f7611c3defc9c82c579a8e65c60b9d..32a15a66bf40eb7fac8732c2908b7b42a77eac6f 100755 (executable)
@@ -1,15 +1,75 @@
-#!/bin/sh
+#!/bin/bash
+#
+# backup-script system for cloning systems using rsync
+# Copyright (c)2008-2015 Alexander Barton, alex@barton.de
+#
+# 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# Please read the file COPYING, README and AUTHORS for more information.
+#
 
-MAILTO="logcheck"
+if [ -z "$MAILTO" ]; then
+       if id "logcheck" >/dev/null 2>&1; then
+               MAILTO="logcheck"
+       elif fgrep "logcheck:" /etc/aliases >/dev/null 2>&1; then
+               MAILTO="logcheck"
+       else
+               MAILTO="root"
+       fi
+fi
 
 NAME="backup-script"
-HOST=`hostname`
-TMP="/tmp/$NAME.$$"
 
-backup-script $* >$TMP 2>&1
+DELIMITER="- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"
+HOST=`hostname -f`
+LOGFILE="/var/log/$NAME.log"
+PIDFILE="/var/run/$NAME.pid"
+SUBJECT="$NAME results"
+TMP=`mktemp /tmp/$NAME.XXXXXXXX` || exit 1
 
-cat $TMP | mail -s "$HOST: $NAME results" "$MAILTO"
+PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
+export PATH
 
-rm -f $TMP
+# check PID file ("lock file")
+if [ -e "$PIDFILE" ]; then
+       echo "Lockfile \"$PIDFILE\" already exists."
+       echo "Is an other instance still running?"
+       echo
+       echo -n "Aborted: "; date
+       echo
+       exit 4
+fi
+
+exec >"$TMP" 2>&1
+
+echo "$NAME Report"
+echo
+echo " - Host: `hostname -f`"
+echo " - User: `id -un`"
+echo
+
+if echo "$DELIMITER" >>"$LOGFILE" 2>/dev/null; then
+       echo >>"$LOGFILE"
+       "$(dirname "$0")/backup-script" "$@" | tee -a "$LOGFILE"
+       r=${PIPESTATUS[0]}
+else
+       "$(dirname "$0")/backup-script" "$@"
+       r=$?
+       echo "(Can't write logfile: \"$LOGFILE\"!)"
+fi
+
+case "$r" in
+       0)
+               ;;
+       *)
+               SUBJECT="$SUBJECT - with ERRORS!"
+esac
+
+cat "$TMP" | mail -s "$HOST: $SUBJECT" "$MAILTO"
+
+rm -f "$TMP"
+exit $r
 
 # -eof-