work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Nginx 日志切割

Posted on 2020-06-10 23:30  work hard work smart  阅读(178)  评论(0编辑  收藏  举报

随着访问量的增加,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

 

 

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

 

3、定时执行my_cut_log.sh

1) 安装定时任务

yum install crontabs

 

启动crontab

service crond start

 

 

 

查看crontab是否启动

service crond status

 

查看定时任务列表

crontab -l

 

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

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

然后重启crontab

systemctl restart crond.service

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