0%

CentOS7 通过 logrotate 配置日志轮滚

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