[project @ peter@palfrader.org-20080706092931-m2wp14enpqeq7q2q]
[mirror/dsa-nagios.git] / dsa-nagios-nrpe-config / dsa-update-apt-status
1 #!/bin/sh
2
3 UPDATE_RUNS=3
4 STATUS=/var/cache/dsa/nagios/apt
5
6 # sleep if called non-interactively
7 if [ -z "$TERM" -o "$TERM" = "dumb" ]; then
8         sleep $(( $RANDOM % 7200 ))
9 fi
10
11 # run apt-get update, retry a few times if it fails
12 count=0
13 while [ "$count" -lt "$UPDATE_RUNS" ]; do
14         apt-get update -qq
15         if [ "$?" = "0" ]; then break; fi
16         sleep $(( $RANDOM % 600 ))
17         count="$(( $count + 1 ))"
18 done
19 if [ "$count" -ge "$UPDATE_RUNS" ]; then
20         (echo "WARNING"
21          echo "apt-get update failed") > "$STATUS"
22          exit 1
23 fi
24
25 # run the apt check itself
26 tmp=`tempfile`
27 trap "rm -f '$tmp'" exit
28 /usr/share/dsa/apt-status-check --noupdate --timeout=600 > "$tmp"
29 result="$?"
30 case "$result" in
31   0)
32         st="OK"
33         ;;
34   1)
35         st="WARNING"
36         ;;
37   2)
38         st="CRITICAL"
39         ;;
40   *)
41         st="UNKNOWN"
42         ;;
43 esac
44 (echo "$st"; cat "$tmp") > "$STATUS"