1、以ph和nginx 为例:

cd /etc/logrotate.d

vim php

/alidata/log/php/*.log {
daily
rotate 30
dateext
create
compress
sharedscripts
copytruncate
}

vim nginx

/alidata/log/nginx/access/*/*.log {
daily
rotate 30
dateext
create
compress
sharedscripts
copytruncate
}

2、配置完成后测试:

强制执行:

​sudo /usr/sbin/logrotate -f /etc/logrotate.conf​

强制以调试模式执行

​sudo /usr/sbin/logrotate -d -f /etc/logrotate.conf​

3、配置crontab 定时执行

​2 0 * * * /etc/cron.daily/logrotate​

重启crontab

​sudo service cron restart​

copytruncate 用于还在打开中的日志文件,把当前日志备份并截断,解决日志仍然写入老文件问题

/alidata/log/*/*.log {
daily
rotate 20
dateext
create
compress
copytruncate
sharedscripts
}