那些年jmeter工具遇到的坑-Jenkins构建jmeter脚本-快速批量删除Jenkins构建清理磁盘空间并按参数保留最近构建

首先说一下个别方案的弊端

Configuration Slicing插件(1.47好久没更新了)不能对Pipeline类型的Jenkins job进行修改“Discard
old builds”,并且修改完了要等这个job下次构建时才清理这个job的多余构建记录和工件;
我的方案有两个功能:

给所有job设置Discard old builds(丢弃旧的构建),当然包括Pipeline Job;
立即按设置的Discard old builds的策略,清理磁盘空间
方案如下
使用Jenkins脚本命令行批量修改任务设置清理磁盘空间

登录Jenkins -> Manage Jenkins -> Script Console(脚本命令行)执行如下命令

import hudson.tasks.LogRotator
Jenkins.instance.allItems(Job).each { job ->
println "$job.builds.number $job.name"
if ( job.isBuildable() && job.supportsLogRotator()) {
// 注释if所有任务统一设置策略,去掉注释后只更改没有配置策略的任务
//if ( job.getProperty(BuildDiscarderProperty) == null) {
job.setLogRotator(new LogRotator (60, 30, 30, 3))
//}
job.logRotate() //立马执行Rotate策略
println "$job.builds.number $job.name 磁盘回收已处理"
} else { println "$job.name 未修改,已跳过" }
}

 

 

解释说明
LogRotator构造参数分别为:

daysToKeep: 构建记录将保存的天数
numToKeep: 最多此数目的构建记录将被保存
artifactDaysToKeep: 比此早的发布包将被删除,但构建的日志、操作历史、报告等将被保留
artifactNumToKeep: 最多此数目的构建将保留他们的发布包
使用截图

 

 

如果是新建的Declarative Pipeline可以添加

options {
buildDiscarder logRotator(artifactDaysToKeepStr: '30', artifactNumToKeepStr: '3', daysToKeepStr: '60', numToKeepStr: '30')
}
1
2
3

 

 


注:Jenkins脚本生成器(利器)

  • Declarative Pipeline 脚本生成器 http://JENKINS_ROOT/directive-generator/
  • Script Pipeline 脚本生成器 http://JENKINS_ROOT/pipeline-syntax/

 

posted @ 2022-04-27 17:34  蘑菇慢慢  阅读(430)  评论(0)    收藏  举报