1.原先使用nginx 内置的日期日志输出方式 发现error日志没法分割随后改用logrotate实现:
粘贴下nginx 原生额方法:主要http和server位置:
http {
....
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server {
if ($time_iso8601 ~ '(\d{4}-\d{2}-\d{2})') {
set $tttt $1;
}
access_log logs/$tttt.access.log main;
....
}
....
}
2.使用linux内置logrotate功能分割
[root@clsn nginx]# cat /etc/logrotate.d/nginx
/home/admin/nginx/logs/*.log {
daily #每天执行
rotate 15 #十五个文件一个循环
missingok 100K #操作100k开始执行
compress #对轮训外的文件gz压缩
delaycompress #保留最新文件
notifempty #如果日志文件为空,轮循不会进行
sharedscripts #执行以下脚本
postrotate
if [ -f /home/admin/nginx/logs/nginx.pid ]; then
kill -USR1 `cat /home/admin/nginx/logs/nginx.pid`
fi
endscript
}
手动重启触发cron定时任务
logrotate -vf /etc/logrotate.conf