From: Peter Palfrader Date: Sun, 6 Jul 2008 09:42:46 +0000 (+0200) Subject: [project @ peter@palfrader.org-20080706094246-lgxrzpnljewux8g5] X-Git-Url: https://wiki.adam-barratt.org.uk/gitweb/?a=commitdiff_plain;h=2b53cd5e9283c1fe9745af86b10d452195f88daa;p=mirror%2Fdsa-nagios.git [project @ peter@palfrader.org-20080706094246-lgxrzpnljewux8g5] Introduce hourly runs for dsa-update-apt-status that happen if the system changed in the meantime, that is if /var/lib/dpkg/status or /var/cache/apt/pkgcache.bin are newer than the status file. Also run if the status file does not exist, or if the last apt-get update call failed. --- diff --git a/dsa-nagios-nrpe-config/debian/changelog b/dsa-nagios-nrpe-config/debian/changelog index 53713a9..57cdd37 100644 --- a/dsa-nagios-nrpe-config/debian/changelog +++ b/dsa-nagios-nrpe-config/debian/changelog @@ -2,8 +2,13 @@ dsa-nagios-nrpe-config (XX) unstable; urgency=low * Move apt status update from cron.daily to usr/sbin/dsa-update-apt-status. * Move script calls from cron.daily to cron.d @daily and @reboot. + * Introduce hourly runs for dsa-update-apt-status that happen if the system + changed in the meantime, that is if /var/lib/dpkg/status or + /var/cache/apt/pkgcache.bin are newer than the status file. + Also run if the status file does not exist, or if the last apt-get update + call failed. - -- Peter Palfrader Sun, 06 Jul 2008 11:27:36 +0200 + -- Peter Palfrader Sun, 06 Jul 2008 11:41:41 +0200 dsa-nagios-nrpe-config (45) unstable; urgency=low diff --git a/dsa-nagios-nrpe-config/debian/cron.d b/dsa-nagios-nrpe-config/debian/cron.d index 389874f..ba79a57 100644 --- a/dsa-nagios-nrpe-config/debian/cron.d +++ b/dsa-nagios-nrpe-config/debian/cron.d @@ -1,7 +1,8 @@ @reboot root sleep 10m && [ -x /usr/share/dsa/weak-ssh-keys-check ] && /usr/share/dsa/weak-ssh-keys-check -s /var/cache/dsa/nagios/weak-ssh-keys @daily root [ -x /usr/share/dsa/weak-ssh-keys-check ] && /usr/share/dsa/weak-ssh-keys-check -s /var/cache/dsa/nagios/weak-ssh-keys -@reboot root sleep 15m && [ -x /usr/sbin/dsa-update-apt-status ] && /usr/sbin/dsa-update-apt-status -@daily root [ -x /usr/sbin/dsa-update-apt-status ] && /usr/sbin/dsa-update-apt-status +@reboot root [ -x /usr/sbin/dsa-update-apt-status ] && /usr/sbin/dsa-update-apt-status +@daily root [ -x /usr/sbin/dsa-update-apt-status ] && /usr/sbin/dsa-update-apt-status +@hourly root [ -x /usr/sbin/dsa-update-apt-status ] && /usr/sbin/dsa-update-apt-status hourly # vim:ft=crontab: diff --git a/dsa-nagios-nrpe-config/dsa-update-apt-status b/dsa-nagios-nrpe-config/dsa-update-apt-status index 47c7e7a..5433d18 100755 --- a/dsa-nagios-nrpe-config/dsa-update-apt-status +++ b/dsa-nagios-nrpe-config/dsa-update-apt-status @@ -3,9 +3,27 @@ UPDATE_RUNS=3 STATUS=/var/cache/dsa/nagios/apt +run_required() { + local run=0 + local norun=1 + + [ -e "$STATUS" ] || return $run + [ /var/lib/dpkg/status -nt "$STATUS" ] && return $run + [ /var/cache/apt/pkgcache.bin -nt "$STATUS" ] && return $run + grep "apt-get update failed" "$STATUS" > /dev/null && return $run +} + +sleep_max=7200 + +if [ "$1" == "hourly" ] ; then + # on the hourly run, only update when the system changed since the last run + run_required || exit + sleep_max=900 +fi + # sleep if called non-interactively if [ -z "$TERM" -o "$TERM" = "dumb" ]; then - sleep $(( $RANDOM % 7200 )) + sleep $(( $RANDOM % $sleep_max )) fi # run apt-get update, retry a few times if it fails