#!/bin/bash # # backup-script system for cloning systems using rsync # Copyright (c)2008-2016 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 grep -F "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" 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 exec >"$TMP" 2>&1 echo "$NAME Report" echo echo " - Host: $(hostname -f)" echo " - User: $(id -un)" echo echo "Command:" echo "$0" "$@" 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 - success" ;; *) SUBJECT="$SUBJECT - with ERRORS!" esac mail -s "$HOST: $SUBJECT" "$MAILTO" <"$TMP" rm -f "$TMP" exit $r # -eof-