I wrapped up a quick script to check whether my Avira AntiVirus definitions are current. Since it might be useful to other people I thought I’d just publish it here:
#!/bin/bash YOUNGEST_FILE=$(ls -tr /usr/lib/AntiVir/guard/*.vdf|tail -1) WARN=$1 CRIT=$2 WARN=$((${WARN:=3} * 86400)) CRIT=$((${CRIT:=7} * 86400)) function age() { local filename=$1 local changed=`stat -c %Y "$filename"` local now=`date +%s` local elapsed let elapsed=now-changed echo $elapsed } FILEAGE=$(age "${YOUNGEST_FILE}") if [ $FILEAGE -gt $CRIT ]; then echo "CRITICAL - Youngest file is $FILEAGE sec old" exit 2 elif [ $FILEAGE -gt $WARN ]; then echo "WARNING - Youngest file is $FILEAGE sec old" exit 1 else echo "OK - Youngest file is $FILEAGE sec old" fi
The default (if you don’t supply any command-line parms) is to warn if the youngest of all virus definition files is older than 3 days, and a critical alert will be triggered if it is older than 7 days. If you supply only one parm it will change the number of days until a warning is triggered, and if you also supply the second parm it will also change the days for a critical alert.
I hope this is useful for someone!