diff options
-rwxr-xr-x | backupninja | 21 | ||||
-rw-r--r-- | etc/backupninja.conf | 15 |
2 files changed, 28 insertions, 8 deletions
diff --git a/backupninja b/backupninja index 236fb67..921cb96 100755 --- a/backupninja +++ b/backupninja @@ -192,6 +192,8 @@ setfile $CONFFILE # get global config options (second param is the default) getconf configdirectory /etc/backup.d getconf reportemail +getconf reportsuccess yes +getconf reportwarning yes getconf loglevel 3 getconf logfile /var/log/backupninja.log getconf SLAPCAT /usr/sbin/slapcat @@ -211,7 +213,9 @@ debug 1 "====== starting at "`date`" ======" # by default, don't make files which are world or group readable. umask 077 -for file in $configdirectory/*; do +for file in $configdirectory/*; do + [ -f $file ] || continue; + perms=`ls -ld $file` perms=${perms:4:6} if [ "$perms" != "------" ]; then @@ -238,10 +242,10 @@ for file in $configdirectory/*; do errors=`echo $ret | grep -e "^Error: \|^Fatal: " | wc -l` if [ $errors != 0 ]; then msg "*failed* -- $file" - error="$error\n== errors from $file ==\n\n$ret\n" + errormsg="$error\n== errors from $file ==\n\n$ret\n" elif [ $warnings != 0 ]; then msg "*warning* -- $file" - error="$error\n== warnings from $file ==\n\n$ret\n" + errormsg="$error\n== warnings from $file ==\n\n$ret\n" elif [ $retcode == 0 ]; then msg "success -- $file" else @@ -256,13 +260,20 @@ done ## mail the messages to the report address -if [ "$reportemail" != "" ]; then +if [ "$reportemail" == "" ]; then doit=0 +elif [ $errors != 0 ]; then doit=1 +elif [ "$reportsuccess" == "yes" ]; then doit=1 +elif [ "$reportwarning" == "yes" -a $warnings != 0 ]; then doit=1 +else doit=0 +fi + +if [ $doit == 1 ]; then hostname=`hostname` { for ((i=0; i < ${#messages[@]} ; i++)); do echo ${messages[$i]} done - echo -e "$error" + echo -e "$errormsg" } | mail $reportemail -s "backupninja: $hostname" fi diff --git a/etc/backupninja.conf b/etc/backupninja.conf index 4d1b63d..45af4ed 100644 --- a/etc/backupninja.conf +++ b/etc/backupninja.conf @@ -6,15 +6,24 @@ # # how verbose to make the logs -# 5 -- Debugging messages (and below) +# 5 -- Debugging messages (and below) # 4 -- Informational messages (and below) # 3 -- Warnings (and below) # 2 -- Errors (and below) # 1 -- Fatal errors (only) loglevel = 4 -# send a summary of backup status to this email address -# reportemail = root +# send a summary of the backup status to +# this email address: +reportemail = root + +# if set to 'yes', a report email will be generated +# even if all modules reported success. (default = yes) +reportsuccess = yes + +# if set to 'yes', a report email will be generated +# even if there was no error. (default = yes) +reportwarning = yes ####################################################### # for most installations, the defaults below are good # |