定时分隔清理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

 

posted @   草木物语  阅读(428)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2017-06-21 word-break:break-all和word-wrap:break-word的区别
点击右上角即可分享
微信分享提示