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!

