[Pkg-awstats-devel] Bug#590074: Bug#590074: awstats: DO NOT use cron scripts to update stats database

Ximin Luo infinity0 at gmx.com
Fri Jul 23 16:55:14 UTC 2010


On 23/07/10 17:46, Sergey B Kirpichev wrote:
> On Fri, Jul 23, 2010 at 4:31 PM, Ximin Luo<infinity0 at gmx.com>  wrote:
>> Currently this package installs a cron job that runs every ten minutes. This
>> is a VERY bad idea:
>>
>> - if logrotate(8) runs during those 10 minutes, some log entries will fail to
>>   be accounted for by awstats
>
> logrotate every 10 minutes - could be the source of trouble.  Not awstats.
>

No, logrotate isn't running every 10 minutes. I think you misunderstood my 
point. If logrotate runs between the 10-minute cron runs of awstats, it will 
rotate the log entries since the last 10-minute run, so the next 10-minute run 
won't be able to see it any more.

>> - it wastes resources parsing the same log files every 10 minutes, especially
>>   if they get big
>
> Do you mean, it parses _same_ log entires?  No, awstats doesn't do
> such a stupid things.  Actually, it does lseek on file to the last
> known entry and then begin parsing.
>

What if the file has been truncated or removed by logrotate?

>> - it makes logcheck(8) spam my inbox every hour due to the cron job failing
>>   every 10 minutes
>
> Why exactly it fails?  Do you try first to comment out crontab entry
> and fix the source of failure?
>

I guess because I haven't written a proper config file yet? Anyway, it's still 
spamming my syslog *every 10 minutes*. This should at least be an option that's 
off by default.

>> A better solution is to hook the update script onto the logrotate(8) entries
>> for any installed webservers (eg. /etc/logrotate.d/lighttpd,apache2). This
>> solves all of the 3 problems I just mentioned.
>
>> Package: awstats
>> Version: 6.9.5~dfsg-2
>> Severity: important
>
> I'm disagree with severity.  Looks like a very
> site-specific/workload-specific issue.  Your logrotate-based solution
> could be suggested as an option in README.Debian for specific setups.
>

logrotate is part of the standard install for Debian webservers (at least 
apache2 and lighttpd). this is not "site specific".

> On Fri, Jul 23, 2010 at 5:31 PM, Jonas Smedegaard<jonas at jones.dk>  wrote:
>> Frequent updates of logfiles have its use too, however.  But not always -
>> and the backsides you raise here are valid.
>
> True.
>
>> I suggest to a) split the current cron job into infrequent and frequent
>> jobs, b) make the frequent one optional (ideally through debconf), and c)
>> invoke the infrequent job also (or instead?) as a logrotate hook.
>
> How to split a) or c)?  It's easy only from the local admin side.
>
> We can make cron job frequency to be debconfigured.  Is it an option?






More information about the Pkg-awstats-devel mailing list