nginx日志切片

需求

上面给了一个任务,说是每日nginx访问日志量都有几个G,又不愿意关闭访问日志。要实现nginx访问日志每日切片,并删除7日前的日志。

实现

先写一个切片的cron.sh文件

#!/bin/bash
# Description: rotate nginx access logs
# nginx进程的pid
NGX_PID=`cat /usr/local/nginx/logs/nginx.pid`
# nginx所在目录
LOGS_DIR="/usr/local/nginx"
# 日志名
LOG_NAME="access"

cd $LOGS_DIR
#移动日志到新的目录 并新文件以日期命名 
/usr/bin/mv  $LOG_NAME ./logs/$(date +%F -d 'yesterday')_$LOG_NAME
#重启nginx 
/bin/kill -USR1 $NGX_PID
#删除7天前的文件名带有“log”的文件
find $LOGS_DIR/logs -type f -name "*log*" -mtime 7 -exec rm -rf {} \

然后,将文件加入定时任务中 ,每日0时执行

echo "0 0 * * * /usr/local/nginx/cron.sh > /dev/null 2>&1" >> /var/spool/cron/root

 

posted @ 2022-04-22 22:59  木之本末  阅读(155)  评论(0编辑  收藏  举报