当前位置: 首页 > news >正文

nginx日志存储access日志和error保留180天,每晚把前一天的日志文件压缩成tar.gz

logrotate日志分割时,rotate参数是必须要加的

在logrotate的配置文件中,rotate参数用于指定保留的旧日志文件数量。如果不配置rotate参数,默认是0个,也就是只允许存在一份日志,刚切分出来的日志会马上被删除‌

logrotate 配置

/usr/local/nginx-24/logs/*.log
{
 daily

rotate 180
 missingok
 copytruncate
 nocompress
 create
 dateext
 dateformat -%Y-%m-%d
 olddir /usr/local/nginx-24/logs/logbak
 sharedscripts
 postrotate
     /usr/local/nginx-24/compress_targz_nginx_logs.sh
 endscript
}

compress_targz_nginx_logs.sh 配置

#!/bin/sh

# 日志目录
BACKUP_DIR="/usr/local/nginx-24/logs/logbak"

# 获取前一天的日期
#YESTERDAY=$(date -d "yesterday" +"%Y-%m-%d")
TODAY=$(date +"%Y-%m-%d")
# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 创建 tar.gz 文件
tar -czf $BACKUP_DIR/nginx_logs_$TODAY.tar.gz -C $BACKUP_DIR --exclude='*.gz' access.log-$TODAY error.log-$TODAY

mv $BACKUP_DIR/*.log-$TODAY $BACKUP_DIR/temp
#rm -rf $BACKUP_DIR/*.log-$TODAY

# 切换到包含.tar.gz文件的目录
cd /usr/local/nginx-24/logs/logbak

# 使用ls命令按修改时间排序,然后列出文件名
# 保留最新的180个文件名
# 最后使用xargs rm命令删除这些文件
ls -t *.tar.gz | tail -n +181 | xargs -d '\n' rm -f --
 

http://www.lryc.cn/news/534759.html

相关文章:

  • 【Java】多线程和高并发编程(四):阻塞队列(上)基础概念、ArrayBlockingQueue
  • C#控件开发6—旋转按钮
  • 在亚马逊云科技上云原生部署DeepSeek-R1模型(下)
  • C# COM 组件在.NET 平台上的编程介绍
  • 火热的大模型: AIGC架构解析
  • Android LifecycleOwner 闪退,java 继承、多态特性!
  • PHP 完整表单实例
  • 深度学习学习笔记(32周)
  • Web3 开发者的机遇与挑战:技术趋势与职业发展
  • 探索robots.txt:网站管理者的搜索引擎指南
  • LM Studio本地调用模型的方法
  • 防火墙安全综合实验
  • uniapp 编译生成鸿蒙正式app步骤
  • 【进程与线程】如何编写一个守护进程
  • ubuntu安装VMware报错/dev/vmmon加载失败
  • web前端布局--使用element中的Container布局容器
  • 手写一个C++ Android Binder服务及源码分析
  • git rebase发生冲突时 ☞ 解决冲突
  • 【通俗易懂说模型】反向传播(附多元分类与Softmax函数)
  • SQL Server查询计划操作符(7.3)——查询计划相关操作符(6)
  • 计算机视觉的研究方向、发展历程、发展前景介绍
  • 反转字符串-双指针法,
  • 亚博microros小车-原生ubuntu支持系列 27、手掌控制小车运动
  • STM32 HAL库 CANbus通讯(C语言)
  • ML.NET库学习005:基于机器学习的客户细分实现与解析
  • (2/100)每日小游戏平台系列
  • 【Linux Oracle】杂货铺 日常实用2024
  • 浏览器的缓存方式几种
  • 黑马React保姆级(PPT+笔记)
  • 2025web寒假作业二