added reportsuccess and reportwarning config options.
authorElijah Saxon <elijah@riseup.net>
Fri, 17 Dec 2004 00:28:53 +0000 (00:28 +0000)
committerElijah Saxon <elijah@riseup.net>
Fri, 17 Dec 2004 00:28:53 +0000 (00:28 +0000)
backupninja
etc/backupninja.conf

index 236fb67b1aa0bee5d572e0c3fcb0d6b2a3cbb21e..921cb96754d3e76673b51ab080d2281bd359b9c4 100755 (executable)
@@ -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
 
index 4d1b63d361ff14a30d2744390779a581e6f01bbb..45af4ed4f6651fe507b81b659f99f9c3d0446a88 100644 (file)
@@ -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 #