updating the logrotate hint 2nd try

Emmanuel Trillaud etrillaud at gmail.com
Tue May 26 04:30:15 PDT 2009

I recently proposed a patch to the logrotate hint maintainer and I CC
to the hints mainig list. 
It seems like the patch was remove from the mail. So I ressend you the
full hint. 
The author seems unreachable so far (the mail address is not valid), so
let me now if you are interested by this update.

Although I subscribe to the mailing list, I didn't receive the previous
mail I send. Do you have any ideas? 

Best regards


AUTHOR:         Hugo S. Cardozo <hugoa_c2004 at yahoo.com>

CONTRIBUTOR:    Emmanuel Trillaud <etrillaud at gmail.com>

DATE:           2009-05-09

LICENSE:        GNU Free Documentation License Version 1.2

SYNOPSIS:       Logrotate: Keep your log files tidy

This hint will help you to install and configure logrotate for your
(B)LFS system. This has been tested on LFS 6.4

* https://fedorahosted.org/releases/l/o/logrotate/logrotate-3.7.8.tar.gz

* LFS 6.4 installed and running.
* Popt-1.14
* Optionally, (F)cron.



Logrotate is an utility to take care of the log files of your system.
It keeps track of the size of the log files, and "rotates" them when
needed. That means the utility checks the size of the files, and if one
of them is larger than a certain size, the program performs some
actions. That action can be: backup and compress the file, remove it or
mail it to an user, create a new empty log file, and others.


First, you need to compile and install popt-1.14. The BLFS book includes
the instructions for this.

Now you can compile logrotate. Unpack the tarball and
        tar xzf logrotate-3.7.8.tar.gz
        cd logrotate-3.7.8
Optionally, run the test suite:
        make test
        make install


The command "logrotate" needs a config file, which must be passed as an
argument to the command when executed. We will put that file in "/etc",
and name it "logrotate.conf".

Create the file with this command:
        cat >> /etc/logrotate.conf << EOF
        # Begin of /etc/logrotate.conf

        # Rotate log files weekly
        # Don't send mail to anybody

        # If the log file is empty, it will not be rotated

        # Number of backups that will be kept
        # This will keep the 2 newest backups only
        rotate 2
        # Create new empty files after rotate old ones
        # This will create empty log files, with owner
        # set to root, group set to sys, and permissions 644
        create 0664 root sys

        # Compress the backups with gzip

        # RPM packages drop log rotation info in this directory
        # so we include any file in it.
        include /etc/logrotate.d

        # End of /etc/logrotate.conf

Also, you can use the file "logrotate-default", which is in the
logrotate sources, in the "examples" directory. I use some of the lines
of that file in my example above.

When installing sysklogd, the LFS book defines some predefined log
files in "/etc/syslog.conf". We can rotate those files by adding their
definitions to logrotate.conf. So, to add them, run this command:
        for logfile in $(find /var/log/* -type f); do
                echo "$logfile {" >> /etc/logrotate.conf
                echo "# If the log file is larger" \
                  "than 100kb, rotate it" >> /etc/logrotate.conf"
                echo "  size=100k" >> /etc/logrotate.conf
                echo "}" >> /etc/logrotate.conf
                echo "" >> /etc/logrotate.conf

For details on editing this file, see logrotate(8).

Logrotate as a Cron job

You can run logrotate just issuing
"/usr/sbin/logrotate /etc/logrotate.conf" but in this case, you should
run that command by yourself, every day (or week, or month...), if you
want the program to work properly. This can be very annoying :-).

Instead, you can run it as a cron job. For the further configuration,
I will assume that you have installed Fcron from the BLFS book.

Create a /etc/fcrontab file by issuing this command:
        cat >> /etc/fcrontab << EOF
        0 12 * * * 0    /usr/sbin/logrotate /etc/logrotate.conf
This will make fcron execute logrotate once a week, on Sunday, at noon.
For details on editing fcrontab, refer to fcrontab(1).

You will need the "check_system_crontabs" script from the fcron
sources. If you haven't installed it, do it by issuing:
        tar xzf fcron-3.0.1.tar.gz
        cp -v fcron-3.0.1/scripts/check_system_crontabs /usr/sbin

Then run the script:
        check_system_crontabs -v
For help, type this:
        check_system_crontabs -h

        * Alexander E. Patrakov, for pointing me for the BLFS
          version of
          popt (Before I used the popt included in Slackware 10.1)

VERSION:        1.2

CHANGELOG:      1.00 First release
                1.1 Corrected popt section, fixed typos.
                1.2 Update the version of logrotate and popt

More information about the hints mailing list