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
---分 时 日 月 周---