dsa-check-file_age: support following symlinks and warning on empty files
authorPeter Palfrader <peter@palfrader.org>
Thu, 9 Mar 2017 09:31:01 +0000 (10:31 +0100)
committerPeter Palfrader <peter@palfrader.org>
Thu, 9 Mar 2017 09:31:01 +0000 (10:31 +0100)
dsa-nagios-checks/checks/dsa-check-file_age
dsa-nagios-checks/debian/changelog

index 546e5f2..6320d6f 100755 (executable)
@@ -2,6 +2,7 @@
 # vim: set fileencoding=utf-8 ai noet sts=8 sw=8 tw=0:
 #
 # Copyright © 2009 Stephen Gran <sgran@debian.org>
+# 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)"
index 3ff5d12..c1816cc 100644 (file)
@@ -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 <weasel@debian.org>  Mon, 23 Jan 2017 14:14:06 +0100