Jenkins需手动配置清理策略,支持按数量或时间保留构建,二者取交集;全局默认策略仅影响新建任务;历史积压可通过Groovy脚本批量清理。

Jenkins 本身不自动清理旧构建记录,需通过配置或插件实现定时清理策略。核心方式是设置构建保留策略,并结合 Jenkins 内置的定期清理机制(如“丢弃旧的构建”),或借助脚本+系统定时任务补充。
配置单个任务的构建保留策略
在任务配置页中,勾选“丢弃旧的构建”,可设定两种主流策略:
- 按构建数量保留:例如“保持最新 20 个构建”,超出数量的旧构建(含日志、归档物、测试报告等)会被自动删除;
- 按天数保留:例如“保持最近 30 天的构建”,超过该时间范围且非被保留(如被标记为“Keep this build forever”)的构建将被清理。
两项可同时启用,Jenkins 会取交集——即只保留同时满足“数量”和“时间”条件的构建。注意:被手动标记为永久保留的构建不受影响。
全局默认策略(适用于新建任务)
进入 “管理 Jenkins” → “配置系统”,找到 “默认丢弃旧构建策略” 区域,可设置新创建任务的默认保留规则(如默认保留 10 个构建)。该设置不影响已有任务,仅对后续新建任务生效。
用脚本批量清理(适合历史积压场景)
当已有大量旧构建未被策略覆盖时,可编写 Groovy 脚本在 Jenkins Script Console 中执行,或通过 Jenkins CLI/REST API 定期调用:
- 示例 Groovy 脚本(清理所有任务中 90 天前且非永久保留的构建):Jenkins.instance.getAllItems(Job.class).each { job → job.builds.findAll { it.timeInMillis
- 建议将脚本保存为 Jenkins Pipeline 或外部 Shell 脚本,配合 Linux cron 或 Windows Task Scheduler 每周运行一次,避免手动干预。
配合插件增强控制力
安装 ThinBackup 或 Job Configuration History 插件不能直接清理构建,但若需备份后清理,可搭配使用;更推荐 Discard Old Build Plugin 的增强版功能(部分企业定制分支支持按磁盘空间阈值触发清理)。不过多数场景下,原生策略 + 定期脚本已足够稳定可靠。


















