Nginx-日志按天切割

2023年01月03日 2403点热度 0人点赞 0条评论

实现思路
shell脚本+定时任务+nginx信号控制,完成日志定时切割。

具体步骤
在需要保存日志或者是其他目录,新建一个shell脚本。

nano /data/www/nginx_logs_division.sh

编辑内容如下:

#!/bin/bash
#此脚本用于自动分割Nginx的日志,包括access.log和error.log 每天00:00执行此脚本
#将前一天的access.log重命名为access-xxxx-xx-xx.log格式,并重新打开日志文件 Nginx日志文件所在目录
LOG_PATH=/data/www/w.mdeve.com/logs/
#获取昨天的日期
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
#获取pid文件路径
PID=/dev/shm/nginx.pid
#分割日志
mv ${LOG_PATH}access.log ${LOG_PATH}access-${YESTERDAY}.log
mv ${LOG_PATH}error.log ${LOG_PATH}error-${YESTERDAY}.log
#修改新日志的所属用户和组
chown www:www *
#向Nginx主进程发送USR1信号,重新打开日志文件
kill -USR1 `cat ${PID}`

赋予脚本可执行权限:

chmod +x nginx_logs_division.sh

设置定时任务:

crontab -e

添加如下内容:

#每天凌晨1点切割日志
0 0 * * * /data/www/nginx_logs_division.sh

大功告成,日志按天自动切割的功能就完成了!

路灯

这个人很懒,什么都没留下

文章评论