logrotate 是 linux 系统用来分割日志的系统工具,可以方便将日志按周期(日,周,月)和大小进行分割。
当我们的服务器访问量比较大时,服务器的 access.log 可能会 G/天的级别增长,而我们希望日志可以按天周月或当日志文件大小达到某个限额时进行分割。
修改/etc/logrotate.d/nginx文件,如下:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
dateext
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then
run-parts /etc/logrotate.d/httpd-prerotate;
fi
endscript
postrotate
if [ -f /run/nginx.pid ]; then
kill -USR1 `cat /run/nginx.pid`
fi
endscript
}
配置说明
daily:指定转储周期为每天,也可以是weekly:每周,monthly:每月
rotate:转储次数,超过将会删除最老的那一个,上述代码中意味可以存30个
missingok:忽略错误,如“日志文件无法找到”的错误提示
dateext: