跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Docker Nginx 日志定时轮转与清理方案

Docker Nginx 日志定时轮转与清理方案。通过 Shell 脚本压缩并重命名 Nginx 访问与错误日志,将归档文件移至指定目录,自动删除超过 30 天的旧日志,并向容器发送 USR1 信号触发 Nginx 重新打开日志文件。配合 crontab 实现每日定时执行,确保日志存储可控且不过量占用磁盘空间。

山野诗人发布于 2026/2/8更新于 2026/10/254.8K 浏览
Docker Nginx 日志定时轮转与清理方案

创建 Docker Nginx 日志轮转脚本

首先创建 docker_nginx_log_rotate.sh 脚本:

#!/bin/bash
# 宿主机上挂载的 Nginx 日志路径
LOG_PATH="/home/nginx/log"
# 替换为实际的宿主机日志挂载路径
# 宿主机压缩包日志存放路径
LOG_PATH_ZIP="/home/nginx/logzip"
# Docker 容器名称或 ID
CONTAINER_NAME="容器 id"
# 替换为你的 Nginx 容器名称或 ID
# 保留日志天数
KEEP_DAYS=30
# 获取当前日期
DATE=$(date +%Y%m%d)
# 定义日志文件
ACCESS_LOG="access.log"
ERROR_LOG="error.log"
# 检查日志目录是否存在
if [ -d "$LOG_PATH" ]; then
    # 压缩并重命名访问日志
    if [ -f "$LOG_PATH/$ACCESS_LOG" ]; then
        gzip "$LOG_PATH/$ACCESS_LOG"
        mv "$LOG_PATH/$ACCESS_LOG.gz" "$LOG_PATH_ZIP/$ACCESS_LOG-$DATE.gz"
    fi
    # 压缩并重命名错误日志
    if [ -f "$LOG_PATH/$ERROR_LOG" ]; then
        gzip "$LOG_PATH/$ERROR_LOG"
          
    
    
    find  -name  -mtime + -delete
    find  -name  -mtime + -delete
    
    docker   nginx -s reopen
    
     2
     

     

mv
"$LOG_PATH/$ERROR_LOG.gz"
"$LOG_PATH_ZIP/$ERROR_LOG-$DATE.gz"
fi
# 删除超过保留天数的日志文件
"$LOG_PATH_ZIP"
"access.log-*.gz"
$KEEP_DAYS
"$LOG_PATH_ZIP"
"error.log-*.gz"
$KEEP_DAYS
# 向 Docker 容器内的 Nginx 发送 USR1 信号,触发日志轮转
exec
$CONTAINER_NAME
# 等待 Nginx 处理日志轮转
sleep
echo
"Docker Nginx 日志轮转完成:$(date)"
else
echo
"日志目录不存在:$LOG_PATH"
fi

设置权限

chmod +x docker_nginx_log_rotate.sh

配置定时任务

编辑 crontab:

crontab -e

添加以下行(每天 17:20 执行):

20 17 * * * /home/docker_nginx_log_rotate.sh >/dev/null 2>&1

目录

  1. 创建 Docker Nginx 日志轮转脚本
  2. 宿主机上挂载的 Nginx 日志路径
  3. 替换为实际的宿主机日志挂载路径
  4. 宿主机压缩包日志存放路径
  5. Docker 容器名称或 ID
  6. 替换为你的 Nginx 容器名称或 ID
  7. 保留日志天数
  8. 获取当前日期
  9. 定义日志文件
  10. 检查日志目录是否存在
  11. 设置权限
  12. 配置定时任务

更多推荐文章

查看全部
  • OpenClaw 30+ 真实使用场景开源,落地参考
  • Web 可访问性最佳实践:构建人人可用的前端界面
  • GitHub Copilot 使用体验与实战场景分析
  • AIGC 中的变分自编码器(VAE)原理与 PyTorch 实战
  • 2023 年数据分析行业发展前景与高薪领域分析
  • Git 新手指南:在 VS Code 中使用 Git
  • 哈希算法原理与实战:从 SHA-0 到应用场景详解
  • 基于 Java 和 Leaflet 的湖南省道路长度 WebGIS 系统构建
  • AI Agent 核心概念解析、与 RPA 差异及扣子平台实战指南
  • 递归算法:二叉树遍历的核心实现
  • Huobao Drama 开源短剧生成平台:从剧本到视频
  • Qdrant 向量数据库与 Spring AI/LangChain4J 集成实践
  • JDK 17 新特性整理
  • 使用 cpolar 内网穿透实现 OpenClaw 远程访问
  • 用 Rokid 灵珠平台做一个 AI Glasses 作业助手
  • 汽车雷达多径效应下的幽灵目标检测技术解析
  • Docker Compose 部署 OpenClaw 并接入飞书机器人
  • AI 大模型在短视频处理和剪辑中的应用
  • Ubuntu 安装 OpenClaw 网关服务报错 Gateway service check failed 解决方法
  • 从 GetDiagnostics 到 C++ 全栈诊断:排障与调试工具集

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online