Logrotate程序是一个Linux自带日志文件管理工具。使用logrotate轮询日志很方便,配置也很简单。

/etc/logrotate.d/ 下已有关于nginx的配置
打开如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/var/log/nginx/*log {
daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -USR1 $(cat /var/run/nginx.pid 2>/dev/null) 2>/dev/null || :
endscript
}

# /var/log/nginx/*log:需要轮询日志路径
# daily:每天轮询
# rotate 10:保留最多10次滚动的日志
# missingok:如果日志丢失,不报错继续滚动下一个日志
# notifempty:当日志为空时不进行滚动
# compress:旧日志默认用gzip压缩
# sharedscripts的作用是在所有的日志文件都轮转完毕后统一执行一次脚本。如果没有配置这条指令,那么每个日志文件轮转完毕后都会执行一次脚本。
# /var/run/nginx.pid:nginx主进程pid

测试配置
/usr/sbin/logrotate -f /etc/logrotate.d/nginx

Logrotate是基于CRON运行的,所以这个时间是由CRON控制的,一般默认凌晨四五点执行
我们可以通过修改crontab来修改其执行时间。

  • 新版CentOS,配置文件为:/etc/anacrontab。
参考