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

---分 时 日 月 周---