#!/bin/sh
-# default as often as two hours
-UPDATE_HOUR=2
+[ -f /etc/sysconfig/clamd ] && . /etc/sysconfig/clamd
+[ -n "$UPDATE_HOUR" -a "$UPDATE_HOUR" -gt 0 ] || UPDATE_HOUR=2
-if [ -f /etc/sysconfig/clamd ]; then
- . /etc/sysconfig/clamd
-fi
+[ $((`date '+%k'` % $UPDATE_HOUR)) -eq 0 ] || exit 0
-hour=$(LC_ALL=C date '+%H')
-
-div=$((hour % $UPDATE_HOUR))
-[ "$div" = "0" ] || exit 0
-
-# sleep random amount to avoid all servers hitting clamav servers at same time
-# but at most 1800 seconds (half hour)
-rand=${RANDOM:-$$}
-rand=$((rand % 1800))
-sleep $rand
+# sleep random period to avoid all servers hitting clamav servers at the same time,
+# but 1800 seconds (half an hour) at most
+sleep $((RANDOM % 1800))
[ "$UPDATE_MAIL_MESSAGES" ] || UPDATE_MAIL_MESSAGES="errors"
[ "$UPDATE_MAIL_MESSAGES" = "errors" ] && freshclamopt="--quiet"
-notify=
-[ -f /var/lock/subsys/clamd ] && notify="--daemon-notify"
+[ -f /var/lock/subsys/clamd ] && notify="--daemon-notify" || notify=
umask 022
log=$(/usr/bin/freshclam $freshclamopt $notify 2>&1)