#!/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. # 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" DELIMITER="- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" HOST=`hostname -f` LOGFILE="/var/log/$NAME.log" PIDFILE="/var/run/$NAME.pid" SUBJECT="$NAME results" TMP=`mktemp /tmp/$NAME.XXXXXXXX` || exit 1 PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" export PATH # 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-