You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量删除Jenkins中6个月未运行的闲置任务(含工作区)?

批量删除Jenkins近6个月未运行任务并清理工作区的解决方案

当然可以实现,下面是两种实用的解决方法:

方法一:通过Groovy脚本控制台直接执行

Jenkins支持通过内置的脚本控制台运行Groovy脚本批量操作任务,这是最灵活的方式:

  1. 登录Jenkins后台,进入「Manage Jenkins」→「Script Console」
  2. 粘贴以下脚本并执行:
import jenkins.model.Jenkins
import java.util.Calendar

// 计算6个月前的时间戳
def sixMonthsAgo = Calendar.getInstance()
sixMonthsAgo.add(Calendar.MONTH, -6)
def cutoffTime = sixMonthsAgo.getTimeInMillis()

// 获取所有Jenkins任务
def jenkins = Jenkins.getInstance()
def jobs = jenkins.getAllItems()

jobs.each { job ->
    // 判断任务是否满足删除条件:从未运行 或 最后运行时间早于6个月前
    def lastBuild = job.getLastBuild()
    def shouldDelete = false
    if (lastBuild == null) {
        shouldDelete = true
    } else {
        def lastRunTime = lastBuild.getTimeInMillis()
        if (lastRunTime < cutoffTime) {
            shouldDelete = true
        }
    }

    if (shouldDelete) {
        println "准备删除任务: ${job.fullName}"
        // 删除任务工作区
        def workspace = job.getWorkspace()
        if (workspace != null && workspace.exists()) {
            workspace.deleteRecursively()
            println "已清理任务 ${job.fullName} 的工作区"
        }
        // 删除任务本身
        job.delete()
        println "已删除任务: ${job.fullName}"
    }
}

println "批量清理完成"
  1. 脚本说明:
  • 自动计算当前时间往前推6个月的时间节点
  • 遍历所有任务,判断是否从未运行,或最后一次运行早于节点时间
  • 先清理对应工作区,再删除任务
  • 控制台会输出每个操作的日志,方便核对

方法二:使用Job Cleanup插件

如果不想写脚本,可以借助官方插件实现可视化配置:

  1. 安装「Job Cleanup Plugin」(在「Manage Jenkins」→「Plugins」→「Available plugins」中搜索安装)
  2. 安装完成后,进入「Manage Jenkins」→「Configure System」,找到「Job Cleanup」配置项
  3. 添加一条清理规则:
    • 设置规则名称,比如「清理6个月未运行的测试任务」
    • 在「Job selection」中选择需要清理的任务范围(可按团队、任务名称前缀过滤)
    • 在「Retention criteria」中选择「Job has not been built for」,设置为「6」个月
    • 勾选「Delete workspace when job is deleted」选项
    • 可设置定时执行(比如每月1号执行一次)
  4. 保存配置后,插件会按规则自动执行清理操作

注意事项

  • 备份优先:执行批量删除前,务必备份Jenkins的JENKINS_HOME目录,避免误删重要任务
  • 测试验证:可以先修改脚本中的时间范围(比如改成1天),或者在插件中设置测试规则,验证逻辑正确后再正式执行
  • 团队通知:执行清理前最好通知各团队,确认无需要保留的闲置任务
  • 权限要求:执行操作的账号需要拥有Jenkins的管理员权限

内容的提问来源于stack exchange,提问作者Rohan Kankapurkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:05:45