Logrotate is a useful application for automatically rotating your log files. If you choose to store certain logs in directories that logrotate doesn’t know about, you need to create a definition for this.
I have posted a few articles about this for various scenarios, but I wanted to include one that just contains examples for reference.
Typically, entires for logrotate should be stored inside of: /etc/logrotate.d/
To rotate out the MySQL slow query log after it reaches 125M in size, and have a retention rate of 4 logs, use the following:
[root@db01 ~]# vim /etc/logrotate.d/mysqllogs /var/lib/mysql/slow-log { missingok rotate 2 size 125M create 640 mysql mysql }
To rotate out a custom log file for your application daily, and keep 7 day’s worth of logs, compress it, and ensure the ownership stays owned by apache:
[root@web01 ~]# vim /etc/logrotate.d/applicationname /var/www/vhosts/example.com/application/logs/your_app.log { missingok daily rotate 7 compress create 644 apache apache }
If you would like to rotate your Holland backup logs weekly, keeping one months worth of logs, compress it, and ensure the ownership stays owned by root:
[root@db01 ~]# vim /etc/logrotate.d/holland /var/log/holland/holland.log { rotate 4 weekly compress missingok create root adm }
If you would like to rotate out 2 logs, using one defination, simply add it to the first line as shown below:
[root@db01 ~]# vim /etc/logrotate.d/holland /var/log/holland.log /var/log/holland/holland.log { rotate 4 weekly compress missingok create root adm }