# 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
-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
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)"
* 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