zoukankan      html  css  js  c++  java
  • 05 nginx定时任务完成日志切割

    一:nginx日志切割
    (1) 新建一个data目录
    [root@localhost nginx]# mkdir /data
    (2) 新建一个shell脚本
    [root@localhost data]# vi runlog.sh
    (3) 编写shell脚本

           #需要切割日志文件的路径

           LOGPATH=/usr/local/nginx/logs/access.log

           #根据月份创建一个目录

           BASEPATH=/data/$(date -d yesterday +%y%m)

           mkdir -p $BASEPATH

           #把当前的日志文件修改 当前日期的的天数 

           bak=$BASEPATH/$(date -d yesterday +%y%m%d%H%M).hgj123.com.log

           mv $LOGPATH $bak

          #重新创建一个日志文件

          touch $LOGPATH

          #重新执行nginx 信号量  重读日志   [注意 反引号]

          kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

       (3)执行

           sh  runlog.sh

        (4)定时任务

           crontab -e 

           #编写代码

            */1  * * * * sh data/runlog.sh

           /*注意点

              01 00 * * * /xxx/path/b.sh  每天0时1分(建议在02-04点之间,系统负载小)

          */

     ---------------------------------------------------------------------------------------------------------

    新建一个shell 脚本命名为runlog.sh

    #定义一个shell脚本

    #!/bin/bash

    #获取根目录下的日志文件

    LOGPATH=/usr/local/nginx/logs/z.com.access.log

    #获取当前的日期,并创建改文件夹

    BASEPATH=/usr/local/nginx/data/$(date -d yesterday +%Y%m)

    mkdir -p $BASEPATH

    #把日志存放到当前月份的文件夹中

    bak=$BASEPATH/$(date -d yesterday +%d%H%M).z.com.access.log

    mv $LOGPATH $bak

    #重新建立一份新的日志文件

    touch $LOGPATH

    #重新给nginx发信号,重读日志文件

    kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

    -------------------------

    crontab 定时器的编写

    */1 * * * * sh /usr/local/nginx/data/runlog.sh

    ---分 时 日 月 周---

  • 相关阅读:
    ZABBIX实现原理及架构详解
    for(;;)和while(true)的区别
    JVM
    javap的基本用法
    Java VisualVM添加Visual GC插件
    Java虚拟机监控命令
    数据类型 原始类型的方法
    数据类型 数字类型
    Object(对象):基础知识 原型对象prototype
    Object(对象):基础知识 对象方法,"this"
  • 原文地址:https://www.cnblogs.com/hgj123/p/4242290.html
Copyright © 2011-2022 走看看