jenkins中使用脚本来节省资源空间和使用shell提取文件名或目录名的方法
2017-07-31 17:44
656 查看
环境
Linux:5.5jenkins: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 之 提取文件名和目录名的一些方法
总结
这一块是纯脚本知识。相关文章推荐
- 在任意目录下使用某个shell脚本的方法
- shell 提取文件名和目录名的一些方法
- Linux的shell提取文件名和目录名的方法
- PHP教程之PHP中shell脚本的使用方法分享
- 使用Shell脚本对Linux系统和进程资源进行监控
- Linux下使用Shell脚本快速创建项目目录模板
- PHP教程之PHP中shell脚本的使用方法分享
- shell脚本中报 “/bin/sh^M: bad interpreter: 没有那个文件或目录”解决方法
- Linux下使用Shell脚本删除一个目录下的所有子目录和文件
- crontab中使用环境变量的方法(手动执行shell脚本可以,在定时任务中不行)
- 切换目录Shell 脚本执行有三种方法
- 使用Shell脚本对Linux系统和进程资源进行监控
- 使用Dreamhost空间下Shell命令的使用方法
- debian中shell脚本无法使用source的原因及解决方法
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
- 使用Shell脚本对Linux系统和进程资源进行监控
- 使用ShellExcecute打开指定目录并选中指定文件的方法
- 使用Shell脚本对Linux系统和进程资源进行监控
- PHP教程之PHP中shell脚本的使用方法
- 关于shell脚本中报 “/bin/sh^M: bad interpreter: 没有那个文件或目录”的解决方法