
使用logrotate实现nginx日志分片
logrotate 是 linux 系统自带的一个日志工具,用来对日志文件进行自动轮转、压缩、删除和邮寄等操作
在/etc/logrotate.d/目录下创建 nginx 文件,填入下面内容
/usr/local/nginx/logs/*.log {
monthly
missingok
rotate 12
compress
delaycompress
notifempty
create 0640 kk wheel
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
monthly:每月分片一次。daily 则是每天分片
rotate 12:保留最近 12 个月的日志文件。如果是 daily,那么这里的 12 则是保留最近 12 天日志
compress:使用 gzip 压缩旧日志文件。
delaycompress:延迟压缩,直到下一次分片时才压缩。
create 0640 kk whell:创建新日志文件时,设置文件权限为 0640,所有者为 kk,组为 wheel(根据实际情况调整)。
postrotate:分片后执行的脚本,通知 Nginx 重新打开日志文件。
测试配置
sudo logrotate -d /etc/logrotate.d/nginx
-d 则表示调试模式,不会真的分片
强制执行一次分片
sudo logrotate -f /etc/logrotate.d/nginx
本文是原创文章,采用 CC 4.0 BY-SA 协议,完整转载请注明来自 KK元空间
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果