Jenkins中的可用空间删除'builds'目录

时间:2011-11-03 11:51:19

标签: jenkins

我正在使用Jenkins来执行我的项目的日常任务,但是每次执行时,Jenkins都会在 PROJECT_HOME / builds 中存储一个20MB的目录,所以经过大量的执行后,磁盘中的空间每个项目都很庞大(一些Jenkins任务需要10GB)。

对我来说存储以前执行的结果并不是很重要,所以我想知道的是,如果存在一种说Jenkins no来存储该信息的方法。

有人知道如何避免Jenkins存储旧执行的结果吗?

6 个答案:

答案 0 :(得分:47)

如果您进入项目的配置页面,您会找到一个标有“Discard Old Builds”的复选框。启用此选项后,您可以指定保留构建的天数和要保留的最大构建数。

答案 1 :(得分:24)

如果你想让Jenkins丢弃所有旧版本而不必重新运行所有版本,那么你可以运行从http://scriptlerweb.appspot.com/script/show/85001获取的这段脚本:

def jobs = Hudson.instance.items 

jobs.findAll{it.logRotator}.each {
  println("JOB : "+ it.name)
  try {
    println(it.logRotator.perform(it))
  } catch (Exception e) {
    println("It didn't work: "+ e)
  }
}

注意:要在Jenkins上运行脚本,您可以转到脚本控制台http://<server>/jenkins/script。 有关控制台的更多信息,请访问:https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Script+Console

答案 2 :(得分:5)

如果像我一样,你只是注意到当你的构建失败时你的空间已经用完了,那么你会想要清理一些旧版本以释放一些空间。首先更改配置以丢弃旧版本,如jwernerny所述,然后您需要启动构建以触发旧版本的清理。由于缺少可用空间,构建可能会再次失败,但现在应该运行构建后清理并丢弃旧版本。

答案 3 :(得分:2)

转到项目中的配置。

答案 4 :(得分:1)

从Jenkins Scriptler控制台运行以下groovy脚本以删除视图下列出的所有作业构建

import jenkins.model.Jenkins

hudson.model.Hudson.instance.getView('<ViewName>').items.each() {
  println it.fullDisplayName


def jobname=it.fullDisplayName
def item = hudson.model.Hudson.instance.getItem(jobname)
def build = item.getLastBuild()
if (item.getLastBuild() !=null)
  {
Jenkins.instance.getItemByFullName(jobname).builds.findAll { it.number <= build.getNumber() }.each { it.delete() }

}
}

答案 5 :(得分:-1)

实际上我认为自己删除文件夹并不是很好。

让专家来做。你有没有试过Discard Old Builds Plugin

  

&#34;您可以更详细地配置如何丢弃构建   默认&#39;丢弃旧版本&#39;功能。除了构建和天数,   您可以指定构建状态以丢弃/保留。对于旧版本,您   可以配置间隔以保持构建(一个月一次,十分之一   建立...)。您还可以使用日志文件大小来决定是否删除旧的   建立&#34;