Nginx 日志切割

随着访问量的增加,nginx的日志会越来越多,日志体积会越来越大,不便于运维人员查看。切割可以以天为单位,如果日志每天有几百个G或者几个T的话。则可以按需每半天或者每小时对日志切割。

1、nginx日志切割shell

/usr/local/nginx/sbin

vi cut_my_log.sh

#!/bin/bash
LOG_PATH="/usr/local/nginx/logs/"
RECORD_TIME=$(date +%Y-%m-%d+%H:%M)
PID=/usr/local/nginx/logs/nginx.pid
mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log
mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log
# 向Nginx主进程发送信号,用于重新打开日志文件
kill -USR1 `cat $PID`  

这里为了能尽快看到效果,以分钟为单位进行切割。

2、手动执行my_cut_log.sh

chmod +x cut_my_log.sh

./cut_my_log.sh

 Nginx 日志切割

 缺点:每次需要手动执行shell脚本

3、定时执行my_cut_log.sh

1) 安装定时任务

yum install crontabs

启动crontab

service crond start

Nginx 日志切割

查看crontab是否启动

service crond status

查看定时任务列表

crontab -l

2) crontab -e 添加一个新任务

*/1 * * * * /usr/local/nginx/sbin/cut_my_log.sh

然后重启crontab

systemctl restart crond.service

这样自动分割nginx日志就设置好了。

相关推荐