Re: Logrotate - daily log files for a month



Message: 11
Date: Thu, 23 Aug 2007 16:20:34 +0100
From: John Horne <john.horne@xxxxxxxxxxxxxx>
Subject: Re: Logrotate - daily log files for a month
To: For users of Fedora <fedora-list@xxxxxxxxxx>
Message-ID: <1187882434.2814.13.camel@xxxxxxxxxxxxxxxxxx>
Content-Type: text/plain

On Fri, 2007-08-24 at 00:34 +0930, Tim wrote:
> On Thu, 2007-08-23 at 15:27 +0100, John Horne wrote:
> > this does not account for month's of 31 days, or February with 28/29
> > days
> > I'd guess that you'd have to do what banks do: Do your activities on
> the first of the month. If you do it close after midnight, you keep the
> last month's work, and start a new month's, hoping that you want nothing
> in the last few moments to be part of this month's data.
>
Not sure how this is going to help. How to do I configure this with
logrotate?

As far as I am aware logrotate runs daily, and since we want daily log
files I don't see how logrotate is going to know what a 'month' is on a
daily basis. I agree it knows what a 'month' is for monthly log file
rotation, simply because the month (name or number) changes.

What is needed it seems is logrotate to know that the month has changed,
but to keep to the daily log file rotation regardless of what 'rotate'
value is given. That way I get 31 log files for a 31-day month, 30 log
files for a 30-day month and so on.

John.

You will need a number of script files and logrotate files.
Then you set up a crontab (probably best as root) which checks at say 23:45 on the last day of each month, 28/29th, or 30th or 31st day depending on the month value, in separate lines, and each calls a script file which *substitutes* a new logrotate.conf file for the old one. Thus every month the logrorate file which is used corresponds to the number of required logging days.

Crontab will have 12 lines and will only need changing every 4th year for February.

The crontab will look like:

45 23 5 31 * /usr/local/sbin/logrotate-30days # May 31 set logrotate for 30 days for June
45 23 6 30 * /usr/local/sbin/logrorate-31days # June 30, set to 31
45 23 7 31 * /usr/local/sbin/logrotate-31days
45 23 8 31 * /usr/local/sbin/logrotate-30days

Or you could run them at 03 00 x 1 * that is, early on the first day.

A logrotate-xxdays file would just 'cp -f /etc/logrotatexx.conf /etc/logrotate.conf'


It would also be possible to run a script to 'sed /s/30/31' against the logrotate.conf but that seems to be overkill and hard for maintain.

It might also be possible to have a variable in a logrotate file (as in 'rotate $ROTATE_TIMES') but I did not bother to check that out. That also would be harder to maintain as it is more obscure than just changing the file.

For testing, I have things trigger every minute, but each called script ends with a line '/usr/bin/aplay /usr/share/sounds/KDE_Beep_something.wav so you hear a different sound every minute, which tells you that a different test/script was run.



R. Geoffrey Newbury
Barrister and Solicitor
Suite 106, 150 Lakeshore Road West
Mississauga, Ontario, L5H 3R2

o905-271-9600 f905-271-1638
newbury@xxxxxxxxxxxx

Helping with the HTTP issue
<a href="http://www.w3.org/Protocols/";>HTTP</a>

--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list



Relevant Pages

  • Re: Size of wtmp files
    ... for logrotate to configure it the way you want. ... > a script to run 'last' repeatedly on zcatted versions of the rotated files, ... an attacker has full reign to edit the log files with impunity. ...
    (comp.os.linux.misc)
  • Re: syslogd that can rotate file based on size in bytes
    ... In that case, just make logrotate run ... How would you tell logrotate to run every 5 minutes and to rotate only if the log file is larger than, say, 2 MB? ... By doing it in a separate program with general support for rotating ... log files, you can rotate all the log files with one mechanism ...
    (comp.unix.programmer)
  • Re: [SLE] Log Rotation Apache (RH 8) <OT>
    ... I'm not a logrotate expert, but you might try listing each log file separately ... from apache2 to /etc/logrotate.conf. ... > # rotate log files weekly ... > # uncomment this if you want your log files compressed ...
    (SuSE)
  • Re: syslogd that can rotate file based on size in bytes
    ... I don't want to schedule logrotate every second. ... sizes and rotate files automatically. ... By doing it in a separate program with general support for rotating ... log files, you can rotate all the log files with one mechanism ...
    (comp.unix.programmer)
  • Re: get the timestamp as a log filename
    ... Genti A. Hila wrote: ... > I have some log files that are saved from logrotate hourly. ... You may have to write a script to run as part of the logrotate ...
    (Fedora)