方式一:
nginx cronolog日志分割配置文档,根据下面方法,每分钟分割一次NGINX访问日志。
1.nginx日志配置
access_log access_log /data/access_log_pipe main;
2.先创建一个命名管道
mkfifo /www/log/access_log_pipe
3.配置cronolog:
nohup cat /data/access_log_pipe | /usr/local/sbin/cronolog /data/log/domain.access_%Y%m%d%H%M.log &
4.启动Nginx
/usr/local/nginx/sbin/nginx
注意:
cronolog必须在nginx启动前启动
没有安装cronolog的话,需要先安装
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make
make install
方式二:
定时任务中每小时添加定时任务,执行一下脚本,可以实现小时日志分割
log_dir="/var/log/nginx"
date_dir=`date +%Y/%m/%d/%H`
/bin/mkdir -p ${log_dir}/${date_dir} > /dev/null 2>&1
/bin/mv ${log_dir}/access.log ${log_dir}/${date_dir}/access.log
kill -USR1 `cat /opt/nginx/logs/nginx.pid`
方式三:
logrotate看名字就知道是专门做日志轮询的,只把任务配置放在/etc/logrotate.d/下,任务就会自动完成,而且无需安装,系统自带,比较推荐使用.
vi/etc/logrotate.d/nginx
-
/usr/local/nginx/logs/www.willko.cn.log /usr/local/nginx/logs/nginx_error.log {
-
notifempty
-
daily
-
sharedscripts
-
postrotate
-
/bin/kill -USR1 `/bin/cat /usr/local/nginx/nginx.pid`
-
endscript
-
-
}
多个日志以空格分开,
notifempty 如果日志为空则不做轮询
daily 每天执行一次
postrotate 日志轮询后执行的脚本
这样,每天都会自动轮询,生成nginx.log.1-n
后话:
用Jmeter对方法一进行了测试,新建线程组:线程数200,循环150,新建http请求,请求nginx上的图片,请求30000次,失败326次,后台形成5个文件,行数如下:
2868 access_201112182030.log
7777 access_201112182031.log
7626 access_201112182032.log
7873 access_201112182033.log
3530 access_201112182034.log
29674 total
并没有因为切分文件而丢失日志。
分享到:
相关推荐
windows 下nginx 日志切割 结合windows任务计划,实现每天备份日志,并reopen nginx
NULL 博文链接:https://baobeituping.iteye.com/blog/2165977
本解本实现了使用shell脚本实现nginx日志分割,大家如果没资源分下载,可以转至:https://mp.csdn.net/mdeditor/85233117# 去查看源代码。谢谢大家
nginx日志按时间切割脚本 (bat文件)
利用crontab定时机制触发shell脚本,自动切割nginx的日志文件,并实现自动清理,可直接在服务器上上传使用
NULL 博文链接:https://happyqing.iteye.com/blog/2302840
: 为限制 Nginx日志文件大小增加,文件过大,导致无法收缩日志,在配置好的nginx的安装目录下,可以采用批处理文件对日志,根据实际需要的时间进行自动切割,本脚本以天为单位进行保存。对于日志备份功能,因存储...
实现需求 本文实现的功能是在吗每天凌晨00:00把前一天的Nginx日志access.log重命名为access-xxxx-xx-xx.log格式,例如:access-2016-10-01.log,下面话不多说了,来看看详细的实现方法吧。...#Nginx日志文件所在目录
docker在运行过程中会产生庞大的日志,nginx在运行中会产生庞大的日志,tomcat在运行中会产生庞大的日志,这些日子其实我们并不是很需要,所以要把他们清理掉。
本篇文章给大家分享使用Linux系统自带的命令logrotate对Nginx日志进行切割的方法,对nginx日志切割脚本感兴趣的朋友一起学习吧
nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件
最近用nginx,想按日期生成文件,方便日志清理。nginx以前的版本都是不支持的,后来好像更新了这个问题,但是不想太复杂,不想去研究,就用logrotate配置下,还是挺方便的
前言 在我的上一篇文章《使用...本文主要介绍通过让 awstats 对日志统计的结果生成静态页面,然后通过 Nginx 输出以达到统计 Nginx 访问日志的效果,其中还包括如何让 Nginx 自动切割日志文件。 配置Nginx自动切割日志
每天让NGINX日志自动的生成日志,不至于日志都写在一个文件
主要介绍了Nginx定时切割日志详解,Nginx日志默认情况下写入到一个文件中,为了区分各个域下的日志,我们一般会分开存储。即时这样,文件也会变的越来越大,非常不方便查看分析。下面来聊聊以日期来分隔Nginx日志,...
04-nginx日志管理 05-nginx定时任务完成日志切割 06-Location详解之精准匹配 07-Location之正则匹配 08-Location总结图解 09-nginx Rewrite语法详解 10-编译PHP并与nginx整合 11-安装ecshop 12-商城url重写实战 13-...
本文总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log。 nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的...