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
}