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. CentOS下cpu分析 top

    CentOS下 cpu 分析-top 时间:2017-03-20 12:09来源:linux.it.net.cn 作者:IT   一. 前言 我们都知道windows下对各个运行的任务,要通过任务管理 ...

  2. Centos下删除文件后空间并未释放

    [root@DeviceSP /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda3 90G 82G 3.8G 96% / tmp ...

  3. 图解 Redis | 不就是 AOF 持久化嘛

    AOF 日志 试想一下,如果 Redis 每执行一条写操作命令,就把该命令以追加的方式写入到一个文件里,然后重启 Redis 的时候,先去读取这个文件里的命令,并且执行它,这不就相当于恢复了缓存数据了 ...

  4. java命令的本质逻辑揭秘

    前言 在日常编码中,有了ide的支持,我们已经很少直接在命令行中直接执行java XXX命令去启动一个项目了.然而我们有没有想过,一个简单的java命令背后究竟做了些什么事情?让我们看下下面几个简单的 ...

  5. 【Dubbo】SPI

    什么是SPI SPI是JDK内置的一种服务提供发现机制.目前市面上很多框架都用它来做服务的扩展发现.简单的说,它是一种动态替换发现的机制. jdk 实现方式 需要在 classpath 下创建一个目录 ...

  6. web容器获取SSL指纹实现和ByPass

    @font-face { font-family: octicons-link; src: url("data:font/woff;charset=utf-8;base64,d09GRgAB ...

  7. [leetcode] 69. x 的平方根(纯int溢出判断实现)

    69. x 的平方根 非常简单的一个题,用二分法逼近求出ans即可,额外注意下溢出问题. 不过我要给自己增加难度,用long或者BigNum实现没意思,只能使用int类型 换句话当出现溢出时我们自己得 ...

  8. MMF的初步介绍:一个规范化的视觉-语言多模态任务框架

    在VQA, Image Caption等任务中,构建模型是一件工作量较大的工作.有没有什么能减少这些重复的工作量呢?与此同时,Pytorch,tensorflow等开源的深度学习工具包发布,大大减少了 ...

  9. NOIP模拟5 T2

    题面:求出满足以下条件的 n*m 的 01 矩阵个数:   (1)第 i 行第 1~li 列恰好有 1 个 1 (li+1到ri-1不能放1)   (2)第 i 行第 ri~m 列恰好有 1 个 1. ...

  10. NCF 如何导入Excel数据

    简介 学了上一节的WebApi之后,我们会发现一片新天地 本节跟大家聊一聊,如何把本地的Excel数据导入到NCF中 仓库地址:https://github.com/NeuCharFramework/ ...