logrotate 是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为转储。这个程序目前是 CentOS 自带的。
logrotate 的执行由系统的 crond 服务实现,通过 crond 的日执行脚本 /etc/cron.daily/logrotate
来触发。
Nginx 有一个网上流传很久的日志切割脚本,现在我们看下如何通过 logrotate 配置常规的 Nginx 访问日志轮滚策略。
1 2 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 }
|
常用命令
1 2 3 4 5 6 7 8
| # 强制轮转 logrotate -f /etc/logrotate.conf # 再加一个-v参数查看轮转的过程 logrotate -vf /etc/logrotate.conf
/etc/init.d/rsyslog restart
/etc/anacrontab
|