diff --git a/plugins/backup/backup-manager b/plugins/backup/backup-manager new file mode 100755 index 00000000..d2eabd00 --- /dev/null +++ b/plugins/backup/backup-manager @@ -0,0 +1,39 @@ +#!/bin/sh + +# Example config: +# [backup-manager] +# user root +# env.backup_dir /path/to/your/backups/ +# env.lifetime 2 +# env.archive_pattern *.tar.bz2 +# env.backup_number 4 + +# Configuration directives, edit before first use. +BACKUP_DIR=${backup_dir:-/data/backup} +ARCHIVE_PATTERN="${archive_pattern:-*.tar.bz2}" +# How old backups should be considered as non-yound anymore in [days]. +LIFETIME=${lifetime:-2} +# Critical states will be issued when the number of fresh backups archives is below `backup_number`, +# and warnings below `backup_number*lifetime` +CRIT=${backup_number:-1} +WARN=$((${CRIT}*${LIFETIME})) + +# The situation is critical if there are no young files, the backup is down. +case $1 in + config) + cat << EOF +graph_title Fresh (<=${LIFETIME}d) backups archives in ${BACKUP_DIR} +graph_vlabel number +graph_args -l 0 +graph_category system +freshcount.label number +freshcount.critical ${CRIT}: +freshcount.warning ${WARN}: +EOF + exit 0;; +esac + +printf "freshcount.value " +find $BACKUP_DIR -name "${ARCHIVE_PATTERN}" -a -mtime -$LIFETIME | wc -l +printf "freshcount.extinfo " +du -sh $BACKUP_DIR