docker nginx 定时脚本保存30天日志信息的实现

 更新时间:2026年01月21日 09:06:06   作者:遇晚风  
本文介绍了docker nginx 定时脚本保存30天日志信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

第一步

创建 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"
        mv "$LOG_PATH/$ERROR_LOG.gz" "$LOG_PATH_ZIP/$ERROR_LOG-$DATE.gz"
    fi

    # 删除超过保留天数的日志文件
    find "$LOG_PATH_ZIP" -name "access.log-*.gz" -mtime +$KEEP_DAYS -delete
    find "$LOG_PATH_ZIP" -name "error.log-*.gz" -mtime +$KEEP_DAYS -delete

    # 向Docker容器内的Nginx发送USR1信号,触发日志轮转
    docker exec $CONTAINER_NAME nginx -s reopen

    # 等待Nginx处理日志轮转
    sleep 2

    echo "Docker Nginx日志轮转完成: $(date)"
else
    echo "日志目录不存在: $LOG_PATH"
fi

第二步

设置权限

chmod +x docker_nginx_log_rotate.sh

第三步

crontab -e
//每天 17.20执行
20 17 * * * /home/docker_nginx_log_rotate.sh  >/dev/null 2>&1

到此这篇关于docker nginx 定时脚本保存30天日志信息的实现的文章就介绍到这了,更多相关docker nginx 定时保存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker搭建PlantUML服务生成UML图的实践分享

    Docker搭建PlantUML服务生成UML图的实践分享

    PlantUML 是一款开源的 UML 图形生成工具,它支持生成类图、时序图、用例图、活动图等多种类型的 UML 图,广泛应用于软件设计、文档编写以及团队沟通中,本文给大家介绍了Docker搭建PlantUML服务生成UML图的最佳实践,需要的朋友可以参考下
    2025-03-03
  • Docker + Rabbitmq 集群部署方案

    Docker + Rabbitmq 集群部署方案

    本文详细描述了如何在两台服务器上部署RabbitMQ集群,包括环境准备、防火墙配置、节点部署、集群配置、镜像队列配置以及节点故障处理,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • docker部署SSM项目(含打包)

    docker部署SSM项目(含打包)

    本文主要介绍了docker部署SSM项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • Docker + Nginx 实现 Java 服务零停机发布并解决发布502问题

    Docker + Nginx 实现 Java 服务零停机发布并解决发布

    本文介绍了一种低成本实现SpringBoot服务零停机发布的方案,通过双实例兜底和Nginx自动重试机制解决传统部署中的502问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • docker该如何删除已停止的容器

    docker该如何删除已停止的容器

    Docker是一个非常有趣的项目,容器是独立运行的一个或一组应用,及他们的运行环境,容器是Docker中的一个重要的概念,这篇文章主要给大家介绍了关于docker该如何删除已停止的容器的相关资料,需要的朋友可以参考下
    2023-05-05
  • 删除Docker镜像、容器和卷的教程指南

    删除Docker镜像、容器和卷的教程指南

    Docker 可以轻松地将应用程序和服务封装在容器中,以便在任何地方运行,然而,在使用 Docker 的过程中,很容易积累大量未使用的镜像、容器和数据卷,这些会使输出杂乱,并占用磁盘空间,所以本文给大家介绍了如何删除Docker镜像、容器和卷,需要的朋友可以参考下
    2024-10-10
  • docker清理大杀器/docker的overlay文件占用磁盘太大的解决

    docker清理大杀器/docker的overlay文件占用磁盘太大的解决

    这篇文章主要介绍了docker清理大杀器/docker的overlay文件占用磁盘太大的解决操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker离线安装并导入镜像过程

    docker离线安装并导入镜像过程

    这篇文章主要介绍了docker离线安装并导入镜像过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • docker部署LNMP&phpMyAdmin的方法步骤

    docker部署LNMP&phpMyAdmin的方法步骤

    这篇文章主要介绍了docker部署LNMP&phpMyAdmin的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 使用Docker Compose创建LAMP环境的详细步骤

    使用Docker Compose创建LAMP环境的详细步骤

    现如今,通过 Docker 容器化部署环境已经逐渐成为主流,特别是在部署像 LAMP 这样的复杂环境时,本教程旨在带您完成使用 Docker-Compose 建立 LAMP 环境的整个过程,同时还包括定制 PHP 环境的步骤,需要的朋友可以参考下
    2024-12-12

最新评论