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的更多相关文章

  1. jenkins构建时报错

    配置好项目后,选择立即构建,报错 由于节点管理配置的太低,或者在节点的用法上 选择了不同的方式 解决办法: 1.尽可能的使用这个节点 2.保证配置过程没有错误.

  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. 而此时 ...

  3. Jenkins构建报错(Jenkins is reserved for jobs with matching label expression)解决办法

    Jenkins构建报错Jenkins is reserved for jobs with matching label expression 原因节点配置导致 修改配置

  4. 四十三、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 ...

  5. apache无法启动报错No space left on device

    apache无法启动报错No space left on device 故障现象:apache无法启动ipcs信号量很多 # service httpd startStarting httpd : [ ...

  6. 【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 ...

  7. Jenkins启动时报错:java.net.BindException: Address already in use: bind 解决方法

    下载jenkins.war包后,进入Jenkins.war包目录下,运行java -jar jenkins.war时报端口被占用的错误:java.net.BindException: Address ...

  8. jenkins构建报错 Error fetching remote repo 'origin'

    ERROR: Error fetching remote repo 'origin' Finished: FAILURE // 原因如下 原因一:可能是配置的git分支的权限问题,检查一下配置里面的源 ...

  9. unzip失败,unzip:报错End-of-central-directory signature not found、scp:报错no space left on device

    文章目录 问题 解决 拓展 问题 通过rz命令传本地文件到本地服务器,失败. 通过scp命令尝试报错: no space left on device 意思是目的机器内存不够用了,但是传过去了,但是没 ...

随机推荐

  1. python中的generator(coroutine)浅析和应用

    背景知识: 在Python中一个function要运行起来,它在python VM中需要三个东西. PyCodeObject,这个保存了函数的代码 PyFunctionObject,这个代表一个虚拟机 ...

  2. HTML相关问题

    1.XHTML和HTML有什么区别HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言最主要的不同:XHTML 元素必须被正确地嵌套.XHTML 元素必须被关闭.标签名必须用小 ...

  3. My first python script for work

    I write it yesterday to watch the NE process(rcpfd,cfgd) automatically, then i will write a window t ...

  4. linux搭建LAMP

    先简要概述下本文要点:(操作系统采用CentOS6.5 x64) 1.分别安装搭建lamp服务环境: 2.采用lamp一键安装包搭建环境: 3.在lamp环境中初步搭建起一个网站: 一. 分别安装搭建 ...

  5. 实现LRU的两种方法---python实现

    这也是豆瓣2016年的一道笔试题... 参考:http://www.3lian.com/edu/2015/06-25/224322.html LRU(least recently used)就不做过多 ...

  6. shell编程之变量

    变量: 变量由字母.数字._ 组成,不能以数字开头 长度不能超过255个字符 在bash中,变量的默认类型是字符串类型 变量分类: 1.用户自定义变量:只在当前shell生效,是局部变量 定义方法: ...

  7. scrapy基础教程

    1. 安装Scrapy包 pip install scrapy, 安装教程 Mac下可能会出现:OSError: [Errno 13] Permission denied: '/Library/Pyt ...

  8. fonts.googleapis.com 加载慢的解决方法

    把:fonts.googleapis.com 替换成 fonts.useso.com

  9. Log4j源代码学习

    了解log4j的源代码来源于项目中一次需求,我们想将系统所有的warn日志统一收集到common-warn.log的日志中去,以便于系统对其进行监控处理.于是模拟自动生成的error配置完成了warn ...

  10. 新手用git

    最近几天用到了git,作为只看过教程,没有在实际项目中使用过的人来说,简直是 T_T ...... 在这里记录一下,以防以后忘记. clone : 本地没有该库,从远程repository拷贝到本地 ...