Jenkins构建时报错:No Space left on device
Jenkins在自动化构建服务的同时也在消耗服务器的磁盘空间,如果构建的项目个数很多,而Jenkins 服务器磁盘空间又不是非常大的话,每隔一段时间磁盘空间就会爆满导致,就会出现磁盘空间不足无法构建的后果。这时候就需要进行一定的手工干预才能恢复Jenkins的正常运作。
解决方案:
1.执行命令:df
查看哪个挂载点满了
2.执行命令:du -sh /* | sort -nr
查看哪个目录占用空间最大(逐层查看,可以定位出哪个目录最大)
最后定位到 /usr/tomcat/tomcat-jenkins/webapps/jenkins/jobs/modules占据空间最大,将其内容清空后重新构建,成功。
其他解决方案:
本文基于Windows操作系统,结合Jenkins 的相关特性解决上述问题。
1.手工删除构建记录
这是最基本的一种操作方法,通过直接物理删除构建记录进行磁盘空间管理。手工删除构建记录方式如下:
(1).进入Jenkins根目录,Windows下默认位于当前用户目录中的.jenkins文件夹。
(2).手工删除构建记录,构建记录位于.jenkins\jobs\XXX\builds中(其中XXX为具体项目名称),以时间戳方式进行组织。根据需要直接删除对应的构建历史即可。
二、转移磁盘空间
转移磁盘空间的思路是通过改变Jenkins的默认主目录达到把构建记录转移到其他磁盘的方式。以Windows系统为例,通常用户目录所在的磁盘会安装很多软件导致磁盘空间处于不充裕的状态,而其他磁盘空间则可以进行动态划分和管理。如果能把Jenkins构建记录存放到相对较大而又可以动态管理的空间中无疑会在很大程度上解决磁盘空间不足的问题。具体操作方式也非常简单:
(1).创建Jenkins根目录环境变量JENKINS_HOME,将该环境变量映射到具体某个工作目录
(2).重启Jenkins即可
转移磁盘空间只是一种相对优化的策略,如果构建需求量非常巨大,该策略通常也是治标不治本,所以还有第三种策略。
3、自动丢弃构建历史数据
一次构建包含两方面的产物:构建记录和构建工件。构建记录是一种跟踪、分析和反馈的依据,具有保存价值;而已经过时的构建工件则通常可以直接丢弃。基于以上思路,Jenkins为我们提供了“丢弃旧的构建”配置功能,通过进行合理配置即可达到保存构建记录丢弃构建工件的效果,配置方式如下:
通过限制“发布包最大保留#个构建”就可以自动确保该项目对应的构建结果中只保存最近若干次的构建工件,从而优化磁盘空间的使用效率。
4、小结
通过上述三种策略,我们可以在实际工作中选择其中的一种或多种,确保Jenkins服务的稳定。
Jenkins构建时报错:No Space left on device的更多相关文章
- jenkins构建时报错
配置好项目后,选择立即构建,报错 由于节点管理配置的太低,或者在节点的用法上 选择了不同的方式 解决办法: 1.尽可能的使用这个节点 2.保证配置过程没有错误.
- 【Devops】【docker】【CI/CD】Jenkins源码管理,设置gitlab上项目的clone地址 + jenkins构建报错:Please make sure you have the correct access rights and the repository exists.
注意,如果 jenkins构建报错:Please make sure you have the correct access rights and the repository exists. 而此时 ...
- Jenkins构建报错(Jenkins is reserved for jobs with matching label expression)解决办法
Jenkins构建报错Jenkins is reserved for jobs with matching label expression 原因节点配置导致 修改配置
- 四十三、jenkins启动时报错:consider increasing the maximum size of the cache. After eviction approximately [10,239] KB of data
jenkins启动时报错: consider increasing the maximum size of the cache. After eviction approximately [10,23 ...
- apache无法启动报错No space left on device
apache无法启动报错No space left on device 故障现象:apache无法启动ipcs信号量很多 # service httpd startStarting httpd : [ ...
- 【Devops】【docker】【CI/CD】jenkins源码管理,添加SSH地址后报错+Jenkins构建报错:Please make sure you have the correct access rights and the repository exists.
jenkins源码管理,添加SSH地址后报错: Could not read from remote repository. Please make sure you have the correct ...
- Jenkins启动时报错:java.net.BindException: Address already in use: bind 解决方法
下载jenkins.war包后,进入Jenkins.war包目录下,运行java -jar jenkins.war时报端口被占用的错误:java.net.BindException: Address ...
- jenkins构建报错 Error fetching remote repo 'origin'
ERROR: Error fetching remote repo 'origin' Finished: FAILURE // 原因如下 原因一:可能是配置的git分支的权限问题,检查一下配置里面的源 ...
- unzip失败,unzip:报错End-of-central-directory signature not found、scp:报错no space left on device
文章目录 问题 解决 拓展 问题 通过rz命令传本地文件到本地服务器,失败. 通过scp命令尝试报错: no space left on device 意思是目的机器内存不够用了,但是传过去了,但是没 ...
随机推荐
- 移动APP项目优化
团队计划:设计一款给用户提供就医帮助的安卓APP. 项目计划:两个月内团队成员共同开发完成此款APP,此款APP提供预约挂号,名医名院咨询,就医导航等功能. 角色职责:负责交互设计.UI界面设计.1. ...
- 【原】十分钟搞定pandas
http://www.cnblogs.com/chaosimple/p/4153083.html 本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译 ...
- 更新maven库
删除所在本地仓库的文件夹,例如: 然后,重新下载一个jar包,放到工程的文件夹,注意名字要不同,否则maven库不予更新,替换完成后,点击工程,maven,update project即可,再次查看M ...
- javaScript 将json字符串转换为json对象的方法解析
JSON字符串: var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对 ...
- 脚本改yum源
- 扩展progress_timer的计时精度
progress对外输出精度只有小数点后两位(这点可以运行上节程序进行验证),即精确到0.01秒. 我们使用模板技术仿造一个progress_timer编写一个新类:new_progress_time ...
- 源码剖析——深入Windows句柄本质
参考资料: 1. http://www.codeforge.cn/read/146318/WinDef.h__html windef.h头文件 2. http://www.codeforge.cn/r ...
- Thread 和 Runnable 的区别
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口: Thread类是在java.lang包中定义 的.一个类只要继承了Thread类同时覆写了本类中的run ...
- Linux就该这么学
第三章:Vim编辑器与Shell脚本 Vim文本编辑器 在Linux系统中配置应用服务,实际上就是在修改它的配置文件. 在热门的Linux操作系统中都会默认安装一款超好用的文本编辑器--"v ...
- python走起之第十二话
1. ORM介绍 orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型 ...