The logrotate package allows automatic rotation, compression, removal, and mailing of log files.
This package is known to build and work properly using an LFS-8.3 platform.
Download (HTTP): https://github.com/logrotate/logrotate/releases/download/3.14.0/logrotate-3.14.0.tar.xz
Download MD5 sum: 1c0f6e6e490c4bcac0a1e77ad1310683
Download size: 156 KB
Estimated disk space required: 4.5 MB
Estimated build time: 0.1 SBU (with tests)
fcron-3.2.1 (runtime)
A mail seerver such as Postfix-3.3.1 (runtime)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/logrotate
Install logrotate by running the following command:
./configure --prefix=/usr && make
To test the results, issue: make test. One test fails because the very old compress is not present and two tests fail if an MTA is not installed.
          Now, as the root user:
        
make install
          Logrotate needs a configuration
          file, which must be passed as an argument to the command when
          executed. Create the file as the root user:
        
cat > /etc/logrotate.conf << EOF
# Begin of /etc/logrotate.conf
# Rotate log files weekly
weekly
# Don't mail logs to anybody
nomail
# If the log file is empty, it will not be rotated
notifempty
# Number of backups that will be kept
# This will keep the 2 newest backups only
rotate 2
# Create new empty files after rotating 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
compress
# No packages own lastlog or wtmp -- rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}
/var/log/lastlog {
    monthly
    rotate 1
}
# Some packages drop log rotation info in this directory
# so we include any file in it.
include /etc/logrotate.d
# End of /etc/logrotate.conf
EOF
chmod -v 0644 /etc/logrotate.conf
        
          Now create the /etc/logrotate.d
          directory as the root user:
        
mkdir -p /etc/logrotate.d
          At this point additional log rotation commands can be entered,
          typically in the /etc/logrotate.d
          directory. For example:
        
cat > /etc/logrotate.d/sys.log << EOF
/var/log/sys.log {
   # If the log file is larger than 100kb, rotate it
   size   100k
   rotate 5
   weekly
   postrotate
      /bin/killall -HUP syslogd
   endscript
}
EOF
chmod -v 0644 /etc/logrotate.d/sys.log
        You can designate multiple files in one entry:
cat > /etc/logrotate.d/example.log << EOF
file1
file2
file3 {
   ...
   postrotate
    ...
   endscript
}
EOF
chmod -v 0644 /etc/logrotate.d/example.log
        You can use in the same line the list of files: file1 file2 file3. See the logrotate man page or http://www.techrepublic.com/article/manage-linux-log-files-with-logrotate/ for more examples.
          The command logrotate
          /etc/logrotate.conf can be run manually, however,
          the command should be run daily. Other useful commands are
          logrotate -d
          /etc/logrotate.conf for debugging purposes and
          logrotate -f
          /etc/logrotate.conf forcing the logrotate commands
          to be run immediately. Combining the previous options -df, you can debug the effect of the force command.
          When debugging, the command is only simulated, not really run,
          thus, eventual non-existing errors appear, when some intermediate
          files are expected, because they are not actually created.
        
To set up fcron-3.2.1 to run logrotate ... at 3AM daily, root's crontab should be edited to add:
0 3 * * *   /usr/sbin/logrotate /etc/logrotate.conf
      Last updated on 2018-09-22 16:32:07 -0700