nginx日志切割脚本 —— 筑梦之路

2024-04-16 06:36

本文主要是介绍nginx日志切割脚本 —— 筑梦之路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#!/bin/bash  # 定义Nginx日志目录  
LOG_DIR=/www/server/nginx/logs  # 获取上一天的时间,格式为YYYY-MM-DD  
YESTERDAY_TIME=$(date -d "yesterday" +%F)  # 归档日志的目录,按月创建,如2023-10  
LOG_MONTH_DIR=$LOG_DIR/$(date +"%Y-%m")  # 定义需要切割的日志文件名称列表,这里以access.log为例  
LOG_FILE_LIST="access.log"  # 循环处理日志文件  
for LOG_FILE in $LOG_FILE_LIST; do  # 如果归档目录不存在,则创建该目录  [ ! -d $LOG_MONTH_DIR ] && mkdir -p $LOG_MONTH_DIR  # 将日志文件移动到归档目录,并在文件名后加上上一天的时间戳  mv $LOG_DIR/$LOG_FILE $LOG_MONTH_DIR/${LOG_FILE}_${YESTERDAY_TIME}  
done  # 发送USR1信号给Nginx进程,使其重新打开日志文件  
kill -USR1 $(cat $LOG_DIR/nginx.pid)
  1. 定义日志目录和需要切割的日志文件:脚本首先定义了Nginx的日志目录LOG_DIR和需要切割的日志文件名称列表LOG_FILE_LIST。在这个例子中,我们只处理了access.log,但你可以根据需要添加更多的日志文件,如error.log等。

  2. 获取上一天的时间:使用date命令获取上一天的时间,并格式化为YYYY-MM-DD的形式,存储在变量YESTERDAY_TIME中。

  3. 创建归档日志目录:按月创建归档日志的目录,目录名称为当前年月,如2023-10。如果该目录不存在,则使用mkdir -p命令创建它。

  4. 切割并归档日志文件:通过循环处理日志文件列表中的每一个文件。对于每个文件,我们将其移动到归档目录,并在文件名后加上上一天的时间戳,以便于区分和管理。

  5. 重新打开日志文件:最后,我们通过发送USR1信号给Nginx进程来通知其重新打开日志文件。Nginx在接收到USR1信号后,会关闭当前的日志文件并打开新的日志文件进行记录。这样,我们就可以实现日志文件的自动切割和归档了。

你可以将上述脚本保存为一个.sh文件,比如cut_nginx_logs.sh,并赋予其执行权限(chmod +x cut_nginx_logs.sh)。然后,你可以通过cron定时任务来定期执行这个脚本,以实现日志的自动切割和归档。

此外,你还可以根据需要对脚本进行定制。例如,你可以修改LOG_DIRLOG_FILE_LIST变量来适应你的实际环境。你也可以修改归档目录的命名规则和日志文件的命名规则,以满足你的特定需求。

 

这篇关于nginx日志切割脚本 —— 筑梦之路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/908034

相关文章

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

Nacos日志与Raft的数据清理指南

《Nacos日志与Raft的数据清理指南》随着运行时间的增长,Nacos的日志文件(logs/)和Raft持久化数据(data/protocol/raft/)可能会占用大量磁盘空间,影响系统稳定性,本... 目录引言1. Nacos 日志文件(logs/ 目录)清理1.1 日志文件的作用1.2 是否可以删除

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动