I was trying to make sure my logfiles didnt grow disproportionately large by rotating them via logrotate.d.
Logrotate has two entry points:
/etc/logrotate.d -- this directory contains files that maintain the config settings of all logfiles you want to rotate.
/etc/logrotate.conf -- this file allows you to specify application specific log rotate settings as well.
I'm writing this down now because I had forgotten that I had already configured logrotate for one of my applications and modified the general config file logrotate.conf. When I tried to simulate log rotation by running with the -d parameter:
logrotate -d /etc/logrotate.conf
I recieved a 'duplicate entry' error, which led me to (re)discover the application config files in /etc/logrotate.d.
In general, I think it's a much better idea to do application level logrotate configuration in /etc/logrotate.d. It keeps files manageable and readable.
Here is a sample logrotate config file:
/var/www/rails/dashboard/current/log/*.log {
weekly # once a week
rotate 10 # keep 10 copies
copytruncate # keep original file handle (but truncate file)
delaycompress # delay compression until next rotation
compress # compress it
notifempty # do nothing if you don't need to
missingok # it's not a bad thing to not have a log file.
}
The logrotate tale of two config locations sheds light on a vital system utility. Why Can't Support Understanding its behavior in both /etc and /etc/logrotate.d is key. While /etc provides global settings, /etc/logrotate.d allows per-package configurations.
ReplyDelete