logrotate 是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为转储。这个程序目前是 CentOS 自带的。
logrotate 的执行由系统的 crond 服务实现,通过 crond 的日执行脚本 /etc/cron.daily/logrotate 来触发。
Nginx 有一个网上流传很久的日志切割脚本,现在我们看下如何通过 logrotate 配置常规的 Nginx 访问日志轮滚策略。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | vi /etc/logrotate.d/nginxlog
 /var/log/server/nginx/*log {
 daily
 dateext
 rotate 15
 missingok
 ifempty
 compress
 delaycompress
 sharedscripts
 postrotate
 [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
 endscript
 }
 
 | 
常用命令
| 12
 3
 4
 5
 6
 7
 8
 
 | # 强制轮转logrotate -f /etc/logrotate.conf
 # 再加一个-v参数查看轮转的过程
 logrotate -vf /etc/logrotate.conf
 
 /etc/init.d/rsyslog restart
 
 /etc/anacrontab
 
 |