From b6b846b933ba1d3877da3e4be3c6dc653029bd27 Mon Sep 17 00:00:00 2001 From: Tomasz Pala Date: Sat, 22 May 2010 14:12:48 +0000 Subject: [PATCH] - load sysconfig/clamd first, then act (broken in 1.8), - get rid of intermediate variables (messed in 1.8), - again, compare integers with -eq not =, - numeric output of `date +%[kH]` doesn't need LC_ALL, - finally, it's _divisor_ which mustn't be equal to 0, not divident! previous test disabled updates at midnight. Changed files: clamav-cron-updatedb -> 1.12 --- clamav-cron-updatedb | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/clamav-cron-updatedb b/clamav-cron-updatedb index 0eb7d8b..1a613db 100644 --- a/clamav-cron-updatedb +++ b/clamav-cron-updatedb @@ -1,32 +1,18 @@ #!/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 '+%k') - -# skip divide errors -[ "$hour" = "0" ] && exit 0 - -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) -- 2.44.0