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日志切割方法的更多相关文章

  1. Nginx Java 日志切割脚本

    Nginx日志切割脚本: #!/bin/bash ########################################################################### ...

  2. nginx 的日志切割

    nginx的日志切割脚本 说明:在nginx的配置文件中nginx.conf并没有定义access_log的位置, 在/usr/local/nginx/conf/vhost/下的配置文件中定义了acc ...

  3. Nginx定时日志切割

    Nginx定时日志切割 现有的日志都会存在access.log文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维 人员查看,所以我们可以通过把这个大的日志文件切割为多份不 ...

  4. Linux日志切割方法[Logrotate、python、shell实现方式]

    Linux日志切割方法[Logrotate.python.shell实现方式] ​ 对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分 ...

  5. nginx的日志切割

    nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大,非常不方便查看分析.以日期来作为日志的切割是比较好的,通常我们是以每日来做统计的.下面来说说nginx日志切割. 如果我们使用的是yu ...

  6. Nginx常用日志分割方法

    方式一: nginx cronolog日志分割配置文档,根据下面方法,每分钟分割一次NGINX访问日志. 1.nginx日志配置 access_log /var/log/nginx/access.lo ...

  7. Nginx log日志切割shell

    #!/bin/bash#此脚本用于自动分割Nginx的日志,包括access.log和error.log#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx- ...

  8. Nginx设置日志分割方法

    目标:nginx cronolog日志分割配置文档,每分钟分割一次NGINX访问日志. 大体步骤如下: 1.nginx日志配置 access_log /var/log/nginx/access.log ...

  9. Linux 日志切割方法总结--Logrotate

    一.Logrotate 使用方法 对于Linux系统安全来说,日志文件是极其重要的工具.logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到&qu ...

随机推荐

  1. win10家庭版升级 到win10企业版

    成功升级3小时  20200124 拿到电脑 win10家庭版 不会用 找admin都找不到只能用企业版 升级win10家庭版 到win10企业版 在msdn下载win10企业版iso iso 文件管 ...

  2. 【待写Java线程之线程终止 Interrupt 】

    参考:https://bbs.csdn.net/topics/280082639 interrupt()方法不会中断一个正在运行的线程.这一方法实际上完成的是,在线程受到阻塞时抛出一个中断信号,这样线 ...

  3. MindSpore激活函数总结与测试

    技术背景 激活函数在机器学习的前向网络中担任着非常重要的角色,我们可以认为它是一个决策函数.举个例子说,我们要判断一个输出的数据是猫还是狗,我们所得到的数据是0.01,而我们预设的数据中0代表猫1代表 ...

  4. 备份分区,备份文件切割保存 dd

    cd /tmp wget dl.fedoraproject.org/pub/epel/6/x86_64/dcfldd-1.3.4.1-4.el6.x86_64.rpm sudo yum install ...

  5. Django框架中logging的使用

    Django框架中logging的使用 日志是我们在项目开发中必不可少的一个环节,Python中内置的logging已经足够优秀到可以直接在项目中使用. 本文介绍了如何在DJango项目中配置日志. ...

  6. 微信内 H5 页面自定义分享

    起源: 最近公司在做一个活动的h5页面,在微信内打开时需要进行微信授权,然后后端会重定向到这个页面并且携带了一些参数(openid等).问题是点击微信的原生分享时,会把携带的这些参数一起分享出去,等于 ...

  7. TensorFlow分布式在Amazon AWS上运行

    TensorFlow分布式在Amazon AWS上运行 Amazon AWS 提供采用 NVIDIA K8 GPU 的 P2.x 机器.为了能够使用,第一步还需要创建一个 Amazon AWS 账户, ...

  8. 利用UltraScale和UltraScale+FPGA和MPSOC加速DSP设计生产力

    利用UltraScale和UltraScale+FPGA和MPSOC加速DSP设计生产力 Accelerating DSP Design Productivity with UltraScale an ...

  9. PageHelper--Mybatis分页插件(ssm框架下的使用)

    1.导入PageHelper依赖 <!-- MyBatis 分页插件 --> <dependency> <groupId>com.github.pagehelper ...

  10. 1、java语言概述

    Java基础知识图解 软件开发 软件开发 软件,即一系列按照特定顺序组织的计算机数据和指令的集合.有系统软件和应用软件之分. 人机交互方式 图形化界面(Graphical User Interface ...