分享生成环境中使用shell脚本定时分割Nginx日志的方法

Nginx没有类似Apache的cronolog日志分割处理的功能,日志文件的大小也在不断增长,这对我们想分析当天日志非常的不方便,所以需要每天把日志文件分割出来,并以时间命名。

其实,可以通过Nginx的信号控制功能的脚本来实现日志的自动切割。

shell脚本定时分割nginx日志

#!/bin/bash
# This script run at 00:00

# The Nginx logs path
logs_path="/data111/www12321/"  #这里是日志目录,记得修改

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

2、添加cut_logs.sh执行权限,这个很重要,别忘记了,不然不能定时分割Nginx日志。 

chmod +x cut_logs.sh

3、定时切割的方法:

切换到,root账户:

执行命令crontab -e进入编辑状态
添加如下代码,每天0点01分启动。

01 00 * * * /root/cut_logs.sh  #日志目录


关键词: shell脚本 , 分割nginx日志

上一篇: Ubuntu开机自启动ARP绑定mac地址,防止arp欺骗攻击
下一篇: PHP转换数组中编码的方法

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):