jenkins中使用脚本来节省资源空间和使用shell提取文件名或目录名的方法
环境Linux:5.5jenkins:2.5场景由于公司的项目不断增多,导致jenkins拉取的项目也就越来越多,项目的代码、jar包、资源文件,占用了很多磁盘空间;而且有些资源是重复的!比如项目的jar包就是重复的。当项目部署到jenkins后,jenkins会给每个项目都创建一个工作目录,这个工作目录就是里面就是我们拉取的项目。今天jenkins,出现不能使用的情况,原因是磁盘空间不够,我之
环境
Linux:5.5
jenkins:2.5
场景
由于公司的项目不断增多,导致jenkins
拉取的项目也就越来越多,项目的代码、jar包
、资源文件,占用了很多磁盘空间;而且有些资源是重复的!
比如项目的jar包
就是重复的。
当项目部署到jenkins
后,jenkins
会给每个项目都创建一个工作目录,这个工作目录就是里面就是我们拉取的项目。
今天jenkins
,出现不能使用的情况,原因是磁盘空间不够,我之前也处理过一次,
可以参考 centos7中根据文件大小排序以及jenkins配置每周删除一次jobs日志信息。
而这次磁盘不够处理情形是:Linux中启动jenkins时报No space left on device错误的解决办法。
基于上面的情形,我想了下,还可以优化下,就是把jar包
统一放到一个目录下。
目录结构
我jenkins
项目代码路径:/home/jenkins/workspace
。
下图是里面的项目名:
脚本
完整的脚本,很简单:
cd ${WORKSPACE%/*}
./mvlib.sh ${WORKSPACE##*/}
而mvlib.sh
的内容就是:
#!/bin/bash
cd $1
mv `find . -path "*/lib/*" -name "*.jar"` ../lib/
稍微讲解下:
${WORKSPACE%/*}
中的WORKSPACE
是jenkins
的内置变量,表示当前项目的工作目录。而后面的%/*
的意思是从右边开始的第一个/
(包括/
)开始,后面的内容都删除掉。
比如:WORKSPACE
的路径是:/home/jenkins/workspace/ggnews-pro
那么${WORKSPACE%/*}
,显示的结果就是:/home/jenkins/workspace
${WORKSPACE##*/}
中的##*/
表示的是从左边开始,删除最后一个/
以后的内容,包括/
。
${WORKSPACE##*/}
结果就是:ggnews-pro
。
这一块可以参考: Linux shell 之 提取文件名和目录名的一些方法
总结
这一块是纯脚本知识。
更多推荐
所有评论(0)