@ -0,0 +1,125 @@ | |||
#!/bin/bash | |||
PROGNAME=$(basename $0) | |||
PROGPATH=$(echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,') | |||
. $PROGPATH/utils.sh | |||
print_usage() { | |||
echo "Usage: $PROGNAME -R repo [-d log_dir] [-w warning_age] [-c critical_age]" | |||
echo "Usage: $PROGNAME --help" | |||
} | |||
print_help() { | |||
echo "" | |||
exit $STATE_OK | |||
} | |||
logdir=/var/log/backup-status | |||
wage=93600 # 26h | |||
cage=187200 # 52h | |||
repo="" | |||
while test -n "$1"; do | |||
case "$1" in | |||
--help|-h) | |||
print_help | |||
exit $STATE_OK | |||
;; | |||
--repo|-R) | |||
repo=$2 | |||
shift | |||
;; | |||
--dir|-d) | |||
logdir=$2 | |||
shift | |||
;; | |||
--wage|-w) | |||
wage=$2 | |||
shift | |||
;; | |||
--cage|-c) | |||
cage=$2 | |||
shift | |||
;; | |||
*) | |||
echo "Unknown argument: $1" | |||
print_usage | |||
exit $STATE_UNKNOWN | |||
;; | |||
esac | |||
shift | |||
done | |||
if [ "$repo" == "" ] or [ -d "$logdir/$repo" ]; then | |||
echo "Unknown repo $repo." | |||
exit $STATE_UNKNOWN | |||
fi | |||
perf="" | |||
message="" | |||
warning=0 | |||
critical=0 | |||
unknown=0 | |||
for i in $logdir/$repo/*; do | |||
IFS='|' read -ra STATE < $i | |||
ENTRY=$(basename $i) | |||
END=${STATE[0]} | |||
START=${STATE[1]} | |||
BACKUP_RC=${STATE[2]} | |||
PRUNE_RC=${STATE[3]} | |||
AGE=$(( $(date +%s) - ${START} )) | |||
DURATION=$(( ${END} - ${START} )) | |||
case "$BACKUP_RC" in | |||
0) | |||
;; | |||
1) | |||
warning=1 | |||
message="${message} - [ Backup of ${ENTRY} returned 1. ]" | |||
;; | |||
*) | |||
critical=1 | |||
message="${message} - [ Backup of ${ENTRY} returned ${BACKUP_RC}. ]" | |||
;; | |||
esac | |||
case "$PRUNE_RC" in | |||
0) | |||
;; | |||
1) | |||
warning=1 | |||
message="${message} - [ Prune of ${ENTRY} returned 1. ]" | |||
;; | |||
*) | |||
critical=1 | |||
message="${message} - [ Prune of ${ENTRY} returned ${PRUNE_RC}. ]" | |||
;; | |||
esac | |||
if [ "${AGE}" -gt "${cage}" ]; then | |||
critical=1 | |||
message="${message} - [ Age of ${ENTRY} is CRITICAL ]" | |||
elif [ "${AGE}" -gt "${wage}" ]; then | |||
warning=1 | |||
message="${message} - [ Age of ${ENTRY} is WARNING ]" | |||
fi | |||
perf="${perf}${ENTRY}/age=${AGE}s;${wage};${cage};0;${cage} " | |||
perf="${perf}${ENTRY}/duration=${DURATION}s;;0;3600 " | |||
done | |||
if [ "$critical" == "1" ]; then | |||
echo "BACKUP CRITICAL${message}|${perf}" | |||
exit $STATE_CRITICAL | |||
elif [ "$warning" == "1" ]; then | |||
echo "BACKUP WARNING${message}|${perf}" | |||
exit $STATE_WARNING | |||
else | |||
echo "BACKUP OK|${perf}" | |||
exit $STATE_OK | |||
fi | |||
exit $STATE_UNKNOWN |
@ -0,0 +1,27 @@ | |||
object CheckCommand "backup" { | |||
command = [ PluginDir + "/check_backup.sh" ] | |||
arguments = { | |||
"-R" = { | |||
value = "$backup_repo$" | |||
description = "Name of the repository" | |||
} | |||
"-d" = { | |||
value = "$backup_logdir$" | |||
description = "Directory where backup log are saved." | |||
} | |||
"-w" = { | |||
value = "$backup_wage$" | |||
description = "Maximum backup age to return a warning status." | |||
} | |||
"-c" = { | |||
value = "$backup_cage$" | |||
description = "Maximum backup age to return a critical status." | |||
} | |||
} | |||
vars.backup_logdir = "/var/log/backup-status" | |||
vars.backup_wage = 26h | |||
vars.backup_cage = 52h | |||
} |
@ -0,0 +1,125 @@ | |||
#!/bin/bash | |||
PROGNAME=$(basename $0) | |||
PROGPATH=$(echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,') | |||
. $PROGPATH/utils.sh | |||
print_usage() { | |||
echo "Usage: $PROGNAME -R repo [-d log_dir] [-w warning_age] [-c critical_age]" | |||
echo "Usage: $PROGNAME --help" | |||
} | |||
print_help() { | |||
echo "" | |||
exit $STATE_OK | |||
} | |||
logdir=/var/log/backup-status | |||
wage=93600 # 26h | |||
cage=187200 # 52h | |||
repo="" | |||
while test -n "$1"; do | |||
case "$1" in | |||
--help|-h) | |||
print_help | |||
exit $STATE_OK | |||
;; | |||
--repo|-R) | |||
repo=$2 | |||
shift | |||
;; | |||
--dir|-d) | |||
logdir=$2 | |||
shift | |||
;; | |||
--wage|-w) | |||
wage=$2 | |||
shift | |||
;; | |||
--cage|-c) | |||
cage=$2 | |||
shift | |||
;; | |||
*) | |||
echo "Unknown argument: $1" | |||
print_usage | |||
exit $STATE_UNKNOWN | |||
;; | |||
esac | |||
shift | |||
done | |||
if [ "$repo" == "" ] || [ ! -d "$logdir/$repo" ]; then | |||
echo "Unknown repo $repo." | |||
exit $STATE_UNKNOWN | |||
fi | |||
perf="" | |||
message="" | |||
warning=0 | |||
critical=0 | |||
unknown=0 | |||
for i in $logdir/$repo/*; do | |||
IFS='|' read -ra STATE < $i | |||
ENTRY=$(basename $i) | |||
END=${STATE[0]} | |||
START=${STATE[1]} | |||
BACKUP_RC=${STATE[2]} | |||
PRUNE_RC=${STATE[3]} | |||
AGE=$(( $(date +%s) - ${START} )) | |||
DURATION=$(( ${END} - ${START} )) | |||
case "$BACKUP_RC" in | |||
0) | |||
;; | |||
1) | |||
warning=1 | |||
message="${message} - [ Backup of ${ENTRY} returned 1. ]" | |||
;; | |||
*) | |||
critical=1 | |||
message="${message} - [ Backup of ${ENTRY} returned ${BACKUP_RC}. ]" | |||
;; | |||
esac | |||
case "$PRUNE_RC" in | |||
0) | |||
;; | |||
1) | |||
warning=1 | |||
message="${message} - [ Prune of ${ENTRY} returned 1. ]" | |||
;; | |||
*) | |||
critical=1 | |||
message="${message} - [ Prune of ${ENTRY} returned ${PRUNE_RC}. ]" | |||
;; | |||
esac | |||
if [ "${AGE}" -gt "${cage}" ]; then | |||
critical=1 | |||
message="${message} - [ Age of ${ENTRY} is CRITICAL ]" | |||
elif [ "${AGE}" -gt "${wage}" ]; then | |||
warning=1 | |||
message="${message} - [ Age of ${ENTRY} is WARNING ]" | |||
fi | |||
perf="${perf}${ENTRY}/age=${AGE}s;${wage};${cage};0;${cage} " | |||
perf="${perf}${ENTRY}/duration=${DURATION}s " | |||
done | |||
if [ "$critical" == "1" ]; then | |||
echo "BACKUP CRITICAL${message}|${perf}" | |||
exit $STATE_CRITICAL | |||
elif [ "$warning" == "1" ]; then | |||
echo "BACKUP WARNING${message}|${perf}" | |||
exit $STATE_WARNING | |||
else | |||
echo "BACKUP OK|${perf}" | |||
exit $STATE_OK | |||
fi | |||
exit $STATE_UNKNOWN |