Nginx的定时任务与自动切割

明确:
如果这个网站的访问量比较大,那么一天下来 nginx日志可能会特别的大,所以当出现这种情况呢,如果
把每天的日志都存在同一个日志文件里,会使你的日志文件大到让你怀疑人生,同时也不好管理。所以就
希望每天在一个固定的时间来产生一个新的文件来存储当天的日志,这样就方便管理了很多。 思路:就是使用 定时任务 + USER1信号量来控制Nginx重新生成新的日志文件 此处需要shell脚本(shell脚本只要记住丫的声明就没啥了),与定时任务的相关知识

linux的date命令:

date:查看当前年月日,但不是格式化的,

date -d yesterday : 查看昨天的年月日 是这样形式的 "Fri Apr 13 00:06:06 PDT 2018"

date -d yesterday +'%Y%m%d' : 格式化的昨天的日期,是这样的:20180413 (人类能看懂了)

date -s '2018-4-14 00:09:00' 然后执行 clock -w 命令:修改linux的系统时间

  • 1 开始实现定时任务

      ① 在/usr/local/nginx/ 下建data文件夹,用于存储每天产生的日志文件
    命令:[root@localhost nginx]# mkdir /data
    [root@localhost nginx]# cd /data/
    [root@localhost data]# vim runlog.sh //建个runlog.sh文件用于写shell脚本的定时任务

我们先来测试一下,写个简单的shell脚本,返回昨天的年月日



使用命令:sh runlog.sh 来执行脚本,查看返回结果

    ② 正式编辑runlog.sh文件

	    #!/bin/bash
LOGPATH=/usr/local/nginx/logs/human.com.access.log //nginx产生的日志
BASEPATH=/data/$(date -d yesterday +%Y%m) //每天产生的日志 按照月份 进行存放
mkdir -p $BASEPATH //创建月份文件夹
bak=$BASEPATH/$(date -d yesterday +%d%H%M).human.com.access.log //将每天产生的日志放在对应的月份下
mv $LOGPATH $bak //将nginx产生的日志 剪切 到bak中
touch $LOGPATH //重新创建 human.com.access.log 日志
kill USER1 'cat /usr/local/nginx/logs/nginx.pid' //重复日志

如图:

    ③ 使用命令 :crontab -e 创建时钟
*/1 * * * * sh /data/runlog.sh
依次:分 时 日 月 周

如图:

以上日志的定时切割准备完毕,下面开始测试:

回到data目录下: 使用ls命令 查看 出现 201804 这个文件夹

进入 2101804 目录下,每隔一分钟执行一次 ls 命令:

OK!定时的日志切割完成,目前为测试方便,定时为一分钟执行一次日志切割,生产环境中可对 定时器 自行设置!

Nginx教程---03.Nginx日志切割的更多相关文章

  1. Nginx教程(三) Nginx日志管理

    Nginx教程(三) Nginx日志管理 1 日志管理 1.1 Nginx日志描述 通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某 ...

  2. Nginx教程(三) Nginx日志管理 (转)

    Nginx教程(三) Nginx日志管理 1 日志管理 1.1 Nginx日志描述 通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某 ...

  3. Nginx 热部署和日志切割,你学会了吗?

    上篇文章,我们已经安装好 Nginx,并且配置好 Nginx 文件后,这个时候我就需要操作 Nginx 的命令行了,这篇文章主要讲解 Nginx 命令行相关知识,并通过日常遇到的热部署.切割日志文件场 ...

  4. Nginx教程(一) Nginx入门教程

    Nginx教程(一) Nginx入门教程 1 Nginx入门教程 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行.由 ...

  5. Nginx教程(二) Nginx虚拟主机配置

    Nginx教程(二) Nginx虚拟主机配置 1 虚拟主机管理 1.1 Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主 ...

  6. Nginx教程(二) Nginx虚拟主机配置 (转)

    Nginx教程(二) Nginx虚拟主机配置 1 虚拟主机管理 1.1 Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主 ...

  7. nginx学习(六):日志切割

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

  8. 【09】Nginx:静态压缩 / 日志切割 / 防盗链 /恶意解析/ 跨域

    写在前面的话 上一节我们谈了关于 nginx 服务器的一些简单的安全优化问题,能够帮助我们解决一部分线上服务存在的安全隐患.但是想要提升用户体验这是原因不够的,我们还需要从服务的优化方面入手. 本节更 ...

  9. Nginx 脚本自动进行日志切割

    随着网站的运行时间越来越长,日志文件也会随之越来越大需要对Nginx日志进行切割,下面是每周六晚上自动进行日志切割的shell脚本 脚本如下: [root@jrjs ~]# vim /usr/loca ...

随机推荐

  1. python 第三方扩展库的安装

    主要就是采用 easy_install 和pip安装,一定要把这两个东西安装好.http://peak.telecommunity.com/DevCenter/EasyInstall下载ez_setu ...

  2. ubuntu下安装go环境

    1.官网下载go语言安装包 地址:https://studygolang.com/dl 2.服务器上安装go 将下载下来的安装包解压到/usr/local下 tar xf go1.12.1.linux ...

  3. java对excel文件内容读写修改操作

    Read.java package domain; import java.io.FileInputStream; import java.io.InputStream; import jxl.Cel ...

  4. Python学习之旅(三十三)

    Python基础知识(32):网络编程(Ⅰ) 网络通信是两台计算机上的两个进程之间的通信,而网络编程就是如何在程序中实现两台计算机的通信 P协议负责把数据从一台计算机通过网络发送到另一台计算机 TCP ...

  5. 洛谷P3387 【模板】缩点

    题目背景 缩点+DP 题目描述 给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大.你只需要求出这个权值和. 允许多次经过一条边或者一个点,但是,重复经过的点,权值只 ...

  6. GIS优秀博客以及网址收藏,持续更新

    1.gislaozhang arcpy,模型构建器,arcpro 地址:https://blog.csdn.net/gislaozhang?t=1      2.雾语 arcpy,模型构建器,arcg ...

  7. vue 中使用 axios 请求接口,请求会发送两次问题

    在开发项目过程中,发现在使用axios调用接口都会有两个请求,第一个请求时,看不到请求参数,也看不到请求的结果:只有第二次请求时才会有相应的请求参数以及请求结果: 那为甚么会有这么一次额外的请求呢,后 ...

  8. Spring 学习教程(一):浅谈对Spring IOC以及DI的理解

    一.个人对IoC(控制反转)和DI(依赖注入)的理解我们平时在开发java web程序的时候,每个对象在需要使用它的合作对象时,自己都要将它要合作对象创建出来(比如 new 对象),这个合作对象是由自 ...

  9. python中使用redis

    准备 安装redis服务 点击查看Ubuntu中安装Redis. 安装依赖包 pip install redis 使用 import redis 创建连接 1.普通连接: conn = redis.R ...

  10. input[type = 'date']标签。

    1.首先调用浏览器自带时间控件,input的type属性有以下几种写法: type=’date’ //显示年.月.日 type=‘month’//显示年.月 type=‘week’//显示年.周 ty ...