From 590cdf0593d7b665dc479bac0f312eedc6e0d688 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Thu, 9 Mar 2017 10:31:01 +0100 Subject: [PATCH] dsa-check-file_age: support following symlinks and warning on empty files --- dsa-nagios-checks/checks/dsa-check-file_age | 19 ++++++++++++++++--- dsa-nagios-checks/debian/changelog | 1 + 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/dsa-nagios-checks/checks/dsa-check-file_age b/dsa-nagios-checks/checks/dsa-check-file_age index 546e5f2..6320d6f 100755 --- a/dsa-nagios-checks/checks/dsa-check-file_age +++ b/dsa-nagios-checks/checks/dsa-check-file_age @@ -2,6 +2,7 @@ # vim: set fileencoding=utf-8 ai noet sts=8 sw=8 tw=0: # # Copyright © 2009 Stephen Gran +# Copyright © 2017 Peter Palfrader # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the @@ -38,16 +39,23 @@ $0: usage: -h This help message -i Interval in minutes at which to alert + -z Empty files are not OK + -L Follow symlinks -f File to check EOF exit $ret } -while getopts f:i:h opt ; do +ZEROFAIL="" +FOLLOW="" + +while getopts f:i:hzL opt ; do case "$opt" in f) FILE="$OPTARG" ;; i) INTERVAL="$OPTARG" ;; + z) ZEROFAIL="1" ;; + L) FOLLOW="-L" ;; h) usage 0 esac done @@ -62,9 +70,14 @@ if [ ! -e "$FILE" ]; then exit 2 fi -if [ "$(( $( date +%s ) - $(stat -c %Y $FILE) ))" -gt "$(( $INTERVAL * 60 ))" ]; then +if [ -n "$ZEROFAIL" ] && ! [ -s "$FILE" ]; then + printf "state file %s is empty\n" $FILE + exit 2 +fi + +if [ "$(( $( date +%s ) - $(stat $FOLLOW -c %Y $FILE) ))" -gt "$(( $INTERVAL * 60 ))" ]; then printf "state file %s is older than %d minutes\n" $FILE $INTERVAL exit 2 fi -printf "state file %s OK: updated on %s\n" $FILE "$(stat -c %y $FILE)" +printf "state file %s OK: updated on %s\n" $FILE "$(stat $FOLLOW -c %y $FILE)" diff --git a/dsa-nagios-checks/debian/changelog b/dsa-nagios-checks/debian/changelog index 3ff5d12..c1816cc 100644 --- a/dsa-nagios-checks/debian/changelog +++ b/dsa-nagios-checks/debian/changelog @@ -3,6 +3,7 @@ dsa-nagios-checks (110) UNRELEASED; urgency=medium * dsa-check-timedatectl: handle n/a in timedatectl output for RTC. * dsa-check-backuppg: warn if backups for a database configured in dsa-check-backuppg.conf are missing entirely. + * dsa-check-file_age: support following symlinks and warning on empty files. -- Peter Palfrader Mon, 23 Jan 2017 14:14:06 +0100 -- 2.20.1