定时分隔清理nginx日志文件

 nginx的日志如果不做切分的话会在一个文件中一直追加,导致日志文件越来越大,所以通过编写脚本来实现控制日切的功能,同时清理存在超过30天的文件。

脚本如下:

复制代码

#!/bin/bash
#LOGS_PATH为日志存放路径
LOGS_PATH=/usr/share/nginx/logs
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
KEEPTIME=$(date -d "-30 days" +%Y-%m-%d)
#切分日志文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
#通过Nginx信号量控制重读日志,/web/nginx/为nginx安装目录
kill -USR1 $(cat /web/nginx/logs/nginx.pid)
#删除30天前的日志文件
rm -f ${LOGS_PATH}/access_{KEEPTIME}.log
rm -f ${LOGS_PATH}/error_{KEEPTIME}.log
echo 0

复制代码

添加系统定时任务

crontab -e
#每天0时1分进行日志分割
01 00 * * * /usr/share/nginx/logs/cut_nginx_log.sh

文章参考:https://www.cnblogs.com/zjfjava/p/11154989.html

原文地址:https://www.cnblogs.com/ooo0/p/14911428.html