nginx 日志每天自动切割
简介:
nginx 日志每天自动切割
!/bin/bash
# Nginx日志切割
# 在/data/log/nginx目录下生成类似xxx.log20230526格式的日志,并保留前30天数据
# 创建计划任务,每天0点0分执行:0 0 * * * /data/script/nginx_log_rotation.sh
#你的日志所在目录
LOG_PATH=/home/service/xxx/nginx/logs
#你的nginx服务运行的pid文件
PID=/home/service/xxx/nginx/nginx.pid
#昨天的日期
YESTERDAY=`date -d "yesterday" +%Y-%m-%d`
#因为日志目录里面可能有多个项目,这里我们使用循环读取的方式
for i in `find ${LOG_PATH} -maxdepth 1 -type f|grep -v '[0-9]$'`; do
mv $i $i${YESTERDAY}
done
#重新生成一个新的日志文件,用来保存新的数据
kill -USR1 `cat ${PID}`
#删除创建时间在30天以前的日志文件
find ${LOG_PATH} -mtime +30 -name "*[0-9][0-9]" | xargs rm -f
exit 0