方式一:
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
windows nginx 按天切割日志
**Nginx日志文件切割**是Web服务器管理中的一个重要环节,主要目的是为了定期归档、管理和优化存储空间。在高访问量的网站环境中,Nginx的日志文件可能会迅速增长,如果不进行适当的切割,可能会导致硬盘空间耗尽,...
"nginx日志按时间切割"是常见的日志管理策略,旨在通过定时分割日志文件,避免单个日志文件过大导致的读取性能下降和存储压力。本压缩包提供了一个用于Windows环境的批处理脚本,即`rename-nginx-logs-forwindow.bat...
日志切割是为了便于日志管理和存储,避免单个日志文件过大。以下是一个简单的日志切割方案: 1. **创建日志切割脚本**: 创建一个名为`logrotate.conf`的文件,例如在`/etc/logrotate.d/nginx`目录下,内容如下: ...
NULL 博文链接:https://baobeituping.iteye.com/blog/2165977
加到计划任务里,每天自动分割 nginx日志,低分白送,windows版本批处理文件哦
: 为限制 Nginx日志文件大小增加,文件过大,导致无法收缩日志,在配置好的nginx的安装目录下,可以采用批处理文件对日志,根据实际需要的时间进行自动切割,本脚本以天为单位进行保存。对于日志备份功能,因存储...
本解本实现了使用shell脚本实现nginx日志分割,大家如果没资源分下载,可以转至:https://mp.csdn.net/mdeditor/85233117# 去查看源代码。谢谢大家
它可以与 Nginx、Apache 等 Web 服务器集成,实现日志文件的自动切割和压缩。 6. Logrotate 的相关命令 Logrotate 有多个相关命令,例如 logrotate -f /etc/logrotate.d/nginx 可以手动执行 Logrotate,logrotate ...
Nginx自动日志切割是解决日志文件过大,占用磁盘空间,以及方便历史数据检索的有效手段。 首先,Nginx日志的生成和配置。日志格式可以自定义,例如使用`log_format`指令设置日志模板。如文中的`main`格式,它包含了...
关于日志的切割,随着Web服务的持续运行,日志文件会变得越来越大,为避免单个日志文件过大导致的问题,如磁盘空间的浪费和日志分析的不便,我们需要对日志文件进行定期的切割。日志切割一般是指将当前正在写的日志...
随着网站流量的增长,日志文件也会越来越大,这时需要定期对日志进行切割。 **4.1.1 使用 Logrotate** Logrotate 是 Linux 系统中常用的日志轮换工具,配置文件通常位于 `/etc/logrotate.d/` 目录下。 示例配置...
然而,随着网站流量的增长,日志文件可能会变得非常大,不仅占用大量磁盘空间,还会影响读取和分析效率。因此,定期进行日志切割是必要的。本文将详细讲解Nginx的日志切割机制及其配置方法。 一、Nginx日志格式 ...
利用crontab定时机制触发shell脚本,自动切割nginx的日志文件,并实现自动清理,可直接在服务器上上传使用
在Linux系统中,管理和维护大型Web服务器的Nginx日志是非常重要的工作,因为日志文件可能会变得非常大,占用大量磁盘空间。为了解决这个问题,Linux提供了一个名为logrotate的工具,它可以定期自动地切割和归档日志...
【知识点详解】 1. **日志管理**:在IT运维中,日志管理是一项重要的...通过以上步骤,我们能够理解如何利用Shell脚本实现Nginx日志的自动切割、归档和清理,从而有效管理日志文件,提高系统的维护效率和资源利用率。
实现需求 本文实现的功能是在吗每天凌晨00:00把前一天的Nginx日志access.log重命名为access-xxxx-xx-xx.log格式,例如:access-2016-10-01.log,下面话不多说了,来看看详细的实现方法吧。...#Nginx日志文件所在目录