* 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 <weasel@debian.org> Sun, 06 Jul 2008 11:27:36 +0200
+ -- Peter Palfrader <weasel@debian.org> Sun, 06 Jul 2008 11:41:41 +0200
dsa-nagios-nrpe-config (45) unstable; urgency=low
@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:
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