大家知道,我们每次使用jenkins拉取代码,进行自动打包部署的时候,它都会在jenkins的工作目录下产生一些文件(包括自动打包生成的jar包,以及其他的一些工作文件),产生的文件中,其中光那个jar包就至少几十兆。你想想,每次部署都至少产生几十兆的文件,那在使用jenkins比较频繁部署项目的时候,或者随着时间越来越久,肯定会占用比较大的磁盘空间;

恰巧jenkins默认的工作目录就是在/root目录下,我们平常用的云服务器硬盘一般就40G或50G,那肯定会出现磁盘不够用的情况
遇到这种情况前边的一篇文章我也有讲到,可以再买一块儿大的硬盘进行挂载,并且把jenkins的默认工作路径修改到这个大的硬盘上,可以参考这篇:怎么修改Jenkins的默认工作路径,最简单高效的方式

上边这种方法虽然可以解决问题,但是毕竟需要多花钱,并且随着时间越来越久,你买再大的硬盘,你不清理,早晚也会被占满的。所以比较经济实惠的解决方案应该是去清理一下jenkins很早之前 已经没用的历史构建记录,这样你的磁盘空间不就恢复了吗?

之前也写过一篇文章来介绍怎么排查linux服务器上哪些磁盘哪些文件占的空间比较大,然后再结合你自己的实际情况,可以去删除一些没用的文件,可以参考这篇:linux怎么看各个目录占用磁盘的大小以及清除没用的文件

上边这一篇除了可以清除jenkins没用的历史构建文件,还可以删除其他任何当前对你没用的文件

但是还是有点不方便,那就是你还需要一个个的去找jenkins的构建目录,构建文件都在哪

然后 rm -rf x x x x...去删除,还是比较麻烦的。

所以,今天就讲一下专门针对清除jenkins历史构建最快最方便的方法:使用脚本快速批量删除Jekins历史构建记录

上图可以看到这个项目的构建已经104次了,之前很多的历史构建记录都没啥用了,但是你不清理的话,会一直占着你的磁盘空间

 

我的jenkins默认的工作目录已经迁移到了新挂载的磁盘 /extra 这个目录下

清除历史构建之前是占用了 21%

下面就开始清除一下

1、找到Jenkins执行脚本的地方

 往下拉,找到 Script Console

 

2、执行脚本

def jobName = "玩具商城系统-测试环境部署"   //删除的项目名称
def maxNumber = 95    // 保留的最小编号,意味着小于该编号的构建都将被删除

Jenkins.instance.getItemByFullName(jobName).builds.findAll {
  it.number <= maxNumber
}.each {
  it.delete()
}

上边的脚本复制到命令框里,然后根据你的实际情况一定要记得改一下 jobName 和 maxNumber

点击右下角的 “运行”,就可以了

我脚本里写的是 小于95的构建会被全部删除

可以看下图执行脚本后的效果

 

 可以看到,最后只保留了95以上的相对来说比较最近的几次构建

此时,再回去看下我的磁盘占用情况

 可以看到刚才的磁盘占用是21%  现在变成20%了

如下图的其他几个项目都可以按照上边的步骤操作清除一下,磁盘空间就会变大很多

 ok,以上就是 利用脚本来快速批量删除Jenkins历史构建记录

希望可以帮助到你

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐