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

---分 时 日 月 周---

原文地址:https://www.cnblogs.com/hgj123/p/4242290.html