Skip to content
Snippets Groups Projects
Commit 05ae7cc7 authored by elijah's avatar elijah
Browse files

fixed bug which caused report emails to be sent even if now actions

were processed.
parent cc8aa6a2
No related branches found
No related tags found
No related merge requests found
...@@ -240,6 +240,13 @@ EOF ...@@ -240,6 +240,13 @@ EOF
fatal "Fatal, halting errors (always shown)" fatal "Fatal, halting errors (always shown)"
} }
##
## this function handles the running of a backup action
##
## these globals are modified:
## fatals, errors, warnings, actions_run, errormsg
##
function process_action() { function process_action() {
local file="$1" local file="$1"
local suffix="$2" local suffix="$2"
...@@ -268,16 +275,24 @@ function process_action() { ...@@ -268,16 +275,24 @@ function process_action() {
IFS=$' \t\n' IFS=$' \t\n'
fi fi
let "actions_run += 1"
echo_debug_msg=1 echo_debug_msg=1
# call the handler: # call the handler:
ret=`( . $scriptdir/$suffix $file )` ret=`( . $scriptdir/$suffix $file )`
retcode="$?" retcode="$?"
warnings=`echo $ret | grep -e "^Warning: " | wc -l`
errors=`echo $ret | grep -e "^Error: \|^Fatal: " | wc -l` _warnings=`echo $ret | grep "Warning: " | wc -l`
if [ $errors != 0 ]; then _errors=`echo $ret | grep "Error: " | wc -l`
_fatals=`echo $ret | grep "Fatal: " | wc -l`
if [ $_fatals != 0 ]; then
msg "*failed* -- $file" msg "*failed* -- $file"
errormsg="$errormsg\n== failures from $file ==\n\n$ret\n"
elif [ $_errors != 0 ]; then
msg "*error* -- $file"
errormsg="$errormsg\n== errors from $file ==\n\n$ret\n" errormsg="$errormsg\n== errors from $file ==\n\n$ret\n"
elif [ $warnings != 0 ]; then elif [ $_warnings != 0 ]; then
msg "*warning* -- $file" msg "*warning* -- $file"
errormsg="$errormsg\n== warnings from $file ==\n\n$ret\n" errormsg="$errormsg\n== warnings from $file ==\n\n$ret\n"
elif [ $retcode == 0 ]; then elif [ $retcode == 0 ]; then
...@@ -285,7 +300,11 @@ function process_action() { ...@@ -285,7 +300,11 @@ function process_action() {
else else
msg "unknown -- $file" msg "unknown -- $file"
fi fi
echo_debug_msg=0
echo_debug_msg=0
let "fatals += _fatals"
let "errors += _errors"
let "warnings += _warnings"
} }
##################################################### #####################################################
...@@ -356,12 +375,15 @@ fi ...@@ -356,12 +375,15 @@ fi
## Process each configuration file ## Process each configuration file
info "====== starting at "`date`" ======"
# by default, don't make files which are world or group readable. # by default, don't make files which are world or group readable.
umask 077 umask 077
# these globals are set by process_action()
fatals=0
errors=0 errors=0
warnings=0
actions_run=0
errormsg=""
for file in $configdirectory/*; do for file in $configdirectory/*; do
[ -f $file ] || continue; [ -f $file ] || continue;
...@@ -384,7 +406,9 @@ done ...@@ -384,7 +406,9 @@ done
## mail the messages to the report address ## mail the messages to the report address
if [ "$reportemail" == "" ]; then doit=0 if [ $actions_run == 0 ]; then doit=0
elif [ "$reportemail" == "" ]; then doit=0
elif [ $fatals != 0 ]; then doit=1
elif [ $errors != 0 ]; then doit=1 elif [ $errors != 0 ]; then doit=1
elif [ "$reportsuccess" == "yes" ]; then doit=1 elif [ "$reportsuccess" == "yes" ]; then doit=1
elif [ "$reportwarning" == "yes" -a $warnings != 0 ]; then doit=1 elif [ "$reportwarning" == "yes" -a $warnings != 0 ]; then doit=1
...@@ -392,15 +416,17 @@ else doit=0 ...@@ -392,15 +416,17 @@ else doit=0
fi fi
if [ $doit == 1 ]; then if [ $doit == 1 ]; then
debug "send report to $reportemail"
hostname=`hostname` hostname=`hostname`
[ $warnings == 0 ] || subject="WARNING"
[ $errors == 0 ] || subject="ERROR"
[ $fatals == 0 ] || subject="FAILED"
{ {
for ((i=0; i < ${#messages[@]} ; i++)); do for ((i=0; i < ${#messages[@]} ; i++)); do
echo ${messages[$i]} echo ${messages[$i]}
done done
echo -e "$errormsg" echo -e "$errormsg"
} | mail $reportemail -s "backupninja: $hostname" } | mail $reportemail -s "backupninja: $hostname $subject"
fi fi
info "====== finished at "`date`" ======"
############################################################
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment