check_avastlicense.sh
changeset 0 b6e0cc8761df
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/check_avastlicense.sh	Mon May 23 14:56:27 2016 +0200
@@ -0,0 +1,64 @@
+#!/bin/sh -e
+
+ME=$0
+
+e=3
+s='UNKNOWN'
+
+trap 'trap - EXIT; exit "${e}"' INT QUIT TERM EXIT
+
+die() {
+        echo "$ME: $@" >&2
+        exit
+}
+
+
+FILE='/etc/avast/license.avastlic'
+# in seconds
+CRITICAL=$((7*24*60*60))
+WARNING=$((2*CRITICAL))
+PATTERN='^UpdateValidThru=[0-9]+'
+DELIMITER='='
+NAME='AVASTLICENSE'
+
+while getopts "f:w:c:" opt; do
+  case $opt in
+    c)
+        CRITICAL="$OPTARG"
+        ;;
+    d)
+        DELIMITER="$OPTARG"
+        ;;
+    f)
+        FILE="$OPTARG"
+        ;;
+    p)
+        PATTERN="$OPTARG"
+        ;;
+    w)
+        WARNING="$OPTARG"
+        ;;
+  esac
+done
+shift $((OPTIND-1))
+
+now=$(date +%s)
+expires=$(grep -E $PATTERN $FILE | cut -d$DELIMITER -f2)
+
+[ -n "$expires" ] || die 'Expiry not found!'
+
+left=$((expires - now))
+if [ $left -le $CRITICAL ]; then
+    e=2
+    s='CRITICAL'
+elif [ $left -le $WARNING ]; then
+    e=1
+    s='WARNING'
+elif [ $left -gt 0 ]; then
+    e=0
+    s='OK'
+else
+    die 'this should not happen unless $CRITICAL & $WARNING are negative; this is not supported'
+fi
+
+echo "$NAME $s: file '$FILE' expires at $(date -d @$expires)"