Nginx日志切割,我想分为两种,
一种从日志文件中将历史日志从日志文件切割下来(切割法),
另一个中是把新来的日志按规定格式写到新的日志文件中(分离法)。
切割法:(切割下来的日志文件中内容是历史日志)
编写logrotate配置文件 vi /etc/logrotate.d/nginx
/data/price/*log {
daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid 2>/dev/null) 2>/dev/null || :
endscript
}
检测配置
/usr/sbin/logrotate -f /etc/logrotate.d/nginx
分离法:(按规定时间格式,分离出来的日志)
nginx.conf文件中添加如下配置
if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})")
{
set $year $1;
set $month $2;
set $day $3;
set $hour $4;
set $minutes $5;
set $seconds $6;
}
access_log /data/logs/nginx/www.ttlsa.com-$year-$month-$day-access.log;#按天分离日志
access_log /data/logs/nginx/www.ttlsa.com-$year-$month-$day-$hour-minutes-access.log;#按分钟分离日志