aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbackupninja21
-rw-r--r--etc/backupninja.conf15
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 #