Jenkins build记录清理,释放磁盘空间方式

 更新时间:2025年11月05日 09:33:28   作者:夜小七  
Jenkins构建记录会占用大量磁盘空间,需要定期清理,可以通过JenkinsJob配置中的“丢弃旧的构建”(DiscardOldBuilds)来清理

 在执行构建任务时,会为每个构建生成一个唯一的 ID,并将其相关信息(如日志、归档制品、状态、参数等)存储在 Jenkins Workspace 的特定目录下。

这些记录时间久了会占用大量磁盘空间,影响 Jenkins 性能,因此定期清理是很有必要的。

Jenkins 构建记录的存储位置

每个 Jenkins Job(项目)的构建记录通常存储在 Jenkins Master 服务器的以下路径下:

${JENKINS_HOME}/jobs/<JOB_NAME>/builds/

清理builds记录的方法

Jenkins 提供了多种机制来清理这些构建记录:

1. Jenkins Job 配置中的“丢弃旧的构建” (Discard Old Builds)

这是最常用、最推荐的清理方式,因为它可以在 Job 级别进行精细控制。

配置步骤:

进入你的 Jenkins Job 配置页面 (Job -> Configure)。

在“General”(或“History”)部分,勾选 “丢弃旧的构建” (Discard Old Builds)

配置清理策略:

  • 天数限制: Days to keep builds (保留多少天内的构建)。
  • 数量限制: Max # of builds to keep (最多保留多少个构建)。

高级设置 (Advanced):

  • Days to keep artifacts / Max # of artifacts to keep: 针对归档的制品进行单独设置。
  • Pattern:通过正则表达式匹配构建描述来决定是否保留。
  • Exclude List:排除某些构建(如带有特定标签的)不被清理。

示例配置:

保留最近 10 个构建,或者 30 天内的构建 (两者之一满足即可):

  • Days to keep builds: 30
  • Max # of builds to keep: 10

只保留最近 5 个构建:

  • Days to keep builds: (空着或保持默认-1)
  • Max # of builds to keep: 5

工作原理: 当一个 Job 有新的构建完成时,Jenkins 会检查此 Job 的“丢弃旧的构建”配置,并根据规则删除不符合条件的旧构建记录。这个过程是异步的,通常在构建完成后或 Jenkins 后台任务运行时进行。

优点:

  • 最便捷、最安全 的方式,Jenkins 官方推荐。
  • 提供 Job 级别的细粒度控制。
  • 能够区分保留的构建数量和保留的天数。
  • 可以单独控制 artifacts 的保留策略。

缺点:

  • 需要为每个 Job 单独配置,如果有很多 Job,工作量较大。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java多线程模式之Balking模式详解

    Java多线程模式之Balking模式详解

    这篇文章主要介绍了Java多线程模式之Balking模式,结合实例形式较为详细的分析了Balking模式的原理、用法与相关注意事项,需要的朋友可以参考下
    2017-06-06
  • Java17新特性之 instanceof运算符的实现

    Java17新特性之 instanceof运算符的实现

    Java17对​​instanceof​​运算符进行了增强,引入了模式匹配的功能,本文就来详细的介绍一下新特性之instanceof运算符的使用,感兴趣的可以了解一下
    2025-10-10
  • Java设计模式以虹猫蓝兔的故事讲解桥接模式

    Java设计模式以虹猫蓝兔的故事讲解桥接模式

    桥接是用于把抽象化与实现化解耦,使二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响
    2022-04-04
  • Java中的密码加密方式

    Java中的密码加密方式

    文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固定,且不容易发生碰撞,此外,通过加盐和多重加密,可以进一步增加密码的复杂性和安全性
    2025-01-01
  • Java在Linux上调用FFmpeg实现视频截图的完整指南

    Java在Linux上调用FFmpeg实现视频截图的完整指南

    在Linux环境下使用Java与FFmpeg命令交互进行视频截图是多媒体处理中的常见任务,本文介绍了如何在Java程序中执行FFmpeg命令,通过提供具体代码示例来展示在特定时间点获取视频静态图像的方法,需要的朋友可以参考下
    2025-08-08
  • Java8新特性Stream短路终端操作实例解析

    Java8新特性Stream短路终端操作实例解析

    这篇文章主要介绍了Java8新特性Stream短路终端操作实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java9的一些新特性介绍

    Java9的一些新特性介绍

    这篇文章主要介绍了Java9的一些新特性介绍,Java随着其开源的特点和甲骨文的推动正在不断改进中,需要的朋友可以参考下
    2015-07-07
  • 一文详解java如何实现链式调用

    一文详解java如何实现链式调用

    从 Java 8 开始,便引入了一种称为“流式 API”的编程风格,当然也被称为“链式设置”或“链式调用”,本文主要来和大家讨论一下如何实现链式调用,感兴趣的可以了解下
    2023-12-12
  • java怎么创建目录(删除/修改/复制目录及文件)代码实例

    java怎么创建目录(删除/修改/复制目录及文件)代码实例

    这篇文章主要介绍了java怎么创建目录,还包括删除/修改/复制目录及文件,代码简单,下面直接看代码吧
    2013-12-12
  • Java 程序员必备的 Intellij IDEA 插件

    Java 程序员必备的 Intellij IDEA 插件

    java插件十分方便实用,以下是我用过不错的Intellij插件,当然还有很多插件也都不错,下面将我觉得不错的插件分享给大家,希望能帮到大家
    2018-09-09

最新评论