fi
if [ $print -lt $loglevel ]; then
- if [ -w "$logfile" ]; then
- colorize "$typestr$@" >> $logfile
- fi
+ logmsg "$typestr$@"
+ fi
+}
+
+function logmsg() {
+ if [ -w "$logfile" ]; then
+ echo -e `date "+%h %d %H:%M:%S"` "$@" >> $logfile
fi
}
local perms=`ls -ld $file`
perms=${perms:4:6}
if [ "$perms" != "------" ]; then
- echo "Configuration files must not be group or world readable! Dying on file $file"
- fatal "Configuration files must not be group or world readable! Dying on file $file"
+ echo "Configuration files must not be group or world writable/readable! Dying on file $file"
+ fatal "Configuration files must not be group or world writable/readable! Dying on file $file"
fi
if [ `ls -ld $file | awk '{print $3}'` != "root" ]; then
echo "Configuration files must be owned by root! Dying on file $file"
output to the current shell.
-f, --conffile FILE Use FILE for the main configuration instead
of /etc/backupninja.conf
--t, --test Run in test mode, no actions are actually taken.
--n, --now Perform actions now, instead of when they
- might be scheduled.
+-t, --test Test run mode. This will test if the backup
+ could run, without actually preforming any
+ backups. For example, it will attempt to authenticate
+ or test that ssh keys are set correctly.
+-n, --now Perform actions now, instead of when they might
+ be scheduled. No output will be created unless also
+ run with -d.
--run FILE Execute the specified action file and then exit.
-When using colored output, there are:
+ Also puts backupninja in debug mode.
+
+When in debug mode, output to the console will be colored:
EOF
debug=1
debug "Debugging info (when run with -d)"
function process_action() {
local file="$1"
local suffix="$2"
-
+ local run="no"
setfile $file
# skip over this config if "when" option
# is not set to the current time.
getconf when "$defaultwhen"
if [ "$processnow" == 1 ]; then
- info "running $file because of --now"
+ info ">>>> starting action $file (because of --now)"
elif [ "$when" == "hourly" ]; then
- debug "running $file because 'when = hourly'"
+ info ">>>> starting action $file (because 'when = hourly')"
else
IFS=$'\t\n'
for w in $when; do
IFS=$'\t\n'
if [ $ret == 0 ]; then
debug "skipping $file because it is not $w"
- return
else
- info "running $file because it is $w"
+ info ">>>> starting action $file (because it is $w)"
+ run="yes"
fi
done
IFS=$' \t\n'
fi
+ [ "$run" == "no" ] && return
let "actions_run += 1"
rm $bufferfile
if [ $_fatals != 0 ]; then
msg "*failed* -- $file"
- errormsg="$errormsg\n== failures from $file ==\n\n$ret\n"
+ errormsg="$errormsg\n== fatal errors from $file ==\n\n$ret\n"
+ passthru "Fatal: <<<< finished action $file: FAILED"
elif [ $_errors != 0 ]; then
msg "*error* -- $file"
errormsg="$errormsg\n== errors from $file ==\n\n$ret\n"
+ error "<<<< finished action $file: ERROR"
elif [ $_warnings != 0 ]; then
msg "*warning* -- $file"
errormsg="$errormsg\n== warnings from $file ==\n\n$ret\n"
+ warning "<<<< finished action $file: WARNING"
else
msg "success -- $file"
-# elif [ $retcode == 0 ]; then
-# msg "success -- $file"
-# else
-# msg "unknown -- $file"
+ info "<<<< finished action $file: SUCCESS"
fi
let "fatals += _fatals"
check_perms $file
suffix="${file##*.}"
base=`basename $file`
- if [ "${base:0:1}" == "0" ]; then
+ if [ "${base:0:1}" == "0" -o "$suffix" == "disabled" ]; then
info "Skipping $file"
continue
fi
} | mail $reportemail -s "backupninja: $hostname $subject"
fi
+if [ $actions_run != 0 ]; then
+ info "FINISHED: $actions_run actions run. $fatals fatal. $errors error. $warnings warning."
+fi