Nginx:Nginx日志切割方法
Nginx的日志文件是没有切割(rotate)功能的,但是我们可以写一个脚本来自动切割日志文件。
首先我们要注意两点:
1.切割的日志文件是不重名的,所以需要我们自定义名称,一般就是时间日期做文件名。
2.既然是自动切割日志文件,那当然需要定时任务来进行操作,但是这里还涉及一个问题,Nginx的日志是存储在一个文件的,我们要切割就要保证日志数据的完整性,确保得到想要日期的日志信息,这里有一个方法:向Nginx主进程发送USR1信号 ,以重新开启日志的方式记录所需的日志信息。
接下来就是创建脚本:
在Nginx的安装目录下创建nginx_log.sh脚本
# /opt/nginx/ 这是我的nginx安装目录,大家替换成自己的目录
vi /opt/nginx/nginx_log.sh
编写脚本如下:
#!/bin/bash #设置切割的日志文件存放目录
LOG_HOME="/opt/nginx/logs/" #设置切割的日志名称(这里用日期时间的命名方式)
LOG_PATH_BAK="$(date -d yesterday +%Y%m%d%H%M)".accesss.log #开始切割日志文件
mv ${LOG_HOME}/access.log ${LOG_HOME}/${LOG_PATH_BAK}.log #向nginx主进程发送信号 重新打开记录日志
kill -USR1 `cat /opt/nginx/logs/nginx.pid`
脚本写完了,开始创建定时任务,这里用Linux自带的定时任务管理 crontab 命令
#创建系统定时任务
crontab -e
如下进行编辑:
#一分钟执行一次
*/1 * * * * sh /opt/nginx/nginx_log.sh
这里的Cron表达式设置的是一分钟执行一次,可以根据需要更改。
重启定时任务
service crond restart
接下来就可以等待一分钟看看是否生成日志信息:

至此完成!
Nginx:Nginx日志切割方法的更多相关文章
- Nginx Java 日志切割脚本
Nginx日志切割脚本: #!/bin/bash ########################################################################### ...
- nginx 的日志切割
nginx的日志切割脚本 说明:在nginx的配置文件中nginx.conf并没有定义access_log的位置, 在/usr/local/nginx/conf/vhost/下的配置文件中定义了acc ...
- Nginx定时日志切割
Nginx定时日志切割 现有的日志都会存在access.log文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维 人员查看,所以我们可以通过把这个大的日志文件切割为多份不 ...
- Linux日志切割方法[Logrotate、python、shell实现方式]
Linux日志切割方法[Logrotate.python.shell实现方式] 对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分 ...
- nginx的日志切割
nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大,非常不方便查看分析.以日期来作为日志的切割是比较好的,通常我们是以每日来做统计的.下面来说说nginx日志切割. 如果我们使用的是yu ...
- Nginx常用日志分割方法
方式一: nginx cronolog日志分割配置文档,根据下面方法,每分钟分割一次NGINX访问日志. 1.nginx日志配置 access_log /var/log/nginx/access.lo ...
- Nginx log日志切割shell
#!/bin/bash#此脚本用于自动分割Nginx的日志,包括access.log和error.log#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx- ...
- Nginx设置日志分割方法
目标:nginx cronolog日志分割配置文档,每分钟分割一次NGINX访问日志. 大体步骤如下: 1.nginx日志配置 access_log /var/log/nginx/access.log ...
- Linux 日志切割方法总结--Logrotate
一.Logrotate 使用方法 对于Linux系统安全来说,日志文件是极其重要的工具.logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到&qu ...
随机推荐
- rsync+inotify实现全网自动化数据备份
第1章 环境配置 实例1-1 服务器及IP主机名规划 已知 4 台服务器主机名主机对应信息见下表: 服务器说明 外网 IP(NAT) 内网 IP(NAT) 主机名 web服务器 10.0.0.7/2 ...
- 要想在for语句中直接定义一个变量
要想在for语句中直接 定义一个变量 (如下的代码) 1 for(uint16_t i=0;i<10;i++); 2 if( GPIO_ReadInputDataBit(GPIOA, GPI ...
- ubuntu中安装visual studio code-(转载)
在Ubuntu中安装Visual Studio Code 编译自:http://itsfoss.com/install-visual-studio-code-ubuntu/ 作者: Abhishek ...
- mybatis 同时使用 XML 和注解
引言 学过 MyBatis 框架的童靴都知道, MyBatis 支持 XML 和注解两种方式配置,如下: 使用 XML 方式配置 只写明 XML 的 resource 路径(或者URL路径) < ...
- 实操笔记:为 NSQ 配置监控服务的心路历程
在 Go 语言实现的实时消息队列中, NSQ 的热度可以排第一. NSQ 这款消息中间件简单易用,其设计目标是为在分布式环境下运行,为去中心化服务提供一个强大的基础架构.它具有分布式.去中心化的拓扑结 ...
- unity inputfield 过滤emoji输入
unity版本:unity2017.1.5f1 复现步骤:InputField在安卓手机InputField连续输入两个emoji会报错 报错内容: 2020-01-08 19:56:38.366 2 ...
- Kafka 的安装及启动
Linux 服务器 CentOS 为例. Kafka 安装 获取下载地址,下载后解压. $ wget https://mirror.bit.edu.cn/apache/kafka/2.5.0/kafk ...
- 某SPI设备驱动引起的开关机压力测试死机问题一例
环境 硬件平台:某ARM SoC 软件平台:Linux 问题现象:产品做开关机压力测试,发生死机. 分析 用crash工具解析两次死机dump信息,得到死机前的log如下.两次死机的backtrace ...
- MySQL是如何实现事物隔离?
前言 众所周知,MySQL的在RR隔离级别下查询数据,是可以保证数据不受其它事物影响,而在RC隔离级别下只要其它事物commit后,数据都会读到commit之后的数据,那么事物隔离的原理是什么?是通过 ...
- CVPR2020论文点评: AdderNet(加法网络)
CVPR2020论文点评: AdderNet(加法网络) 论文原文链接:https://arxiv.org/pdf/1912.13200.pdf 源码链接:https://github.com/hua ...