日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。 Nginx日志切割方式有很多种,本章节拿出两种案例来进行分享,分别为 Logrotate 工具切割和脚本切割。
Logrotate切割Nginx日志
切割方式一
[root@nginx_proxy02 /]# vim /etc/logrotate.d/nginx
#按天复制清空切割
/usr/local/nginx/logs/*.log {
daily
rotate 30
missingok
notifempty
compress
nodelaycompress
copytruncate
dateext
dateformat -%Y-%m-%d
dateyesterday
}
配置解析:
#按天切割|保留30个日志文件|切割中遇到日志错误忽略|日志如果为空将不进行切割和压缩|
#以gzip方式压缩|不要将刚切割后的日志文件放到下个循环中进行压缩|复制源日志文件后并清空源日志文件|
#切割后的文件添加日志扩展名|扩展方式为 -%Y-%m-%d|切割后的文件日志命名为昨天的日期|
#手动执行切割(我们做测试使用)
1.写入30M内容
[root@nginx_proxy02 logs]# head -c 30M < /dev/urandom &