30选5玩法|福彩30选5开奖结果321|
 

标签:jenkins

jenkins jobs空间清理 modules过大。

 

查看modules大小

du -h –max-depth=1 /var/lib/jenkins/jobs/XX/modules/
48K    /var/lib/jenkins/jobs/XX/modules/com.metaps.exchangeAdmin$exchangeAdmin
69M    /var/lib/jenkins/jobs/XX/modules/com.metaps.exchangeAdmin$domain
144M    /var/lib/jenkins/jobs/XX/modules/com.metaps.exchangeAdmin$account
142M    /var/lib/jenkins/jobs/XX/modules/com.metaps.exchangeAdmin$common
144M    /var/lib/jenkins/jobs/XX/modules/com.metaps.exchangeAdmin$member
144M    /var/lib/jenkins/jobs/XX/modules/com.metaps.exchangeAdmin$order
144M    /var/lib/jenkins/jobs/XX/modules/com.metaps.exchangeAdmin$risk
147M    /var/lib/jenkins/jobs/XX/modules/com.metaps.exchangeAdmin$api
144M    /var/lib/jenkins/jobs/XX/modules/com.metaps.exchangeAdmin$business
144M    /var/lib/jenkins/jobs/XX/modules/com.metaps.exchangeAdmin$prize
1.2G    /var/lib/jenkins/jobs/XX/modules/

 

 

直?#30001;?#33050;本

脚本
#!/bin/bash
cd /var/lib/jenkins/jobs
echo ‘+————————–开始删除1天前的modules’
files=`find SAT-*/modules/* -mtime +1 -type d`
deletelog=`find SAT-*/modules/* -mtime +1 -type d | xargs ls -dlh|sort|xargs|sed "s/drwxr/\n\rdrwxr/g"`
filelog=`find SAT-*/modules/* -mtime +1 -type d | xargs du -h –max-depth=1`
if [ ! "$files" = "" ]
then
echo ‘+————————–即将删除的文件:’
echo ${deletelog}
echo -e "${filelog} \n"
rm -rf ${files}
else
echo ‘+————————–没有文件要删除’
fi
echo ‘+————————–删除文件执行结束’
echo "#—————本脚本执行结束`date "+%Y-%m-%d-%H:%M:%S"`"
echo "#—————V2.0 by jeff AZURE"
echo "#—————本次版本号V${BUILD}"
echo "#—————本次执行在$(hostname)"

一看必会系列:Jenkins Publish over SSH 路径写法

https://stackoverflow.com/questions/27051543/transferring-0-files-using-publish-over-ssh-plugin-in-jenkins

 

Publish over SSH  

———–Source files

源目录  是当前workspace 的目录路径

 

例 :

/var/lib/jenkins/workspace/xxx/这里就是目录/1/2/3/文件1.jar

 

相?#26376;?#24452;写法   Source files   ./1/2/3/文件1.jar

如果多个文件 可通知 “,” 隔开

 

———记得移出这个目录,不然会在远端生成一样的目录

Remove prefix

 

例写法 

------中间广告---------

Remove prefix   ./1/2/3/

 

———–Remote directory

 

例写法  Remote directory   /tmp

 

这样会生成 /home/xxx/tmp/

 

解决方法, 新建ssh的时候,   remote directory    写  /

Source files

Files to upload to a server.

The string is a comma separated list of includes for an Ant fileset eg. ‘**/*.jar’ (see Patterns in the Ant manual).
The base directory for this fileset is the workspace.

具体看这里

http://ant.apache.org/manual/dirtasks.html#patterns

 

实际执行步骤是

SSH: Remote root is not absolute, getting absolute directory from PWD
SSH: cd [/home/usery]
SSH: OK
SSH: mkdir [tmp]
SSH: OK
SSH: cd [tmp]
SSH: OK
SSH: put [myjar.jar]

jenkins传递?#38382;?#32473;shell

 

jenkins传递?#38382;?#32473;shell

 

查看jenkins?#38382;?/p>

image

export BUILD=${BUILD_NUMBER}
sh +x /opt/script/remotestop.sh

 

这里用sh 不要用sudo

export只是将?#38382;?#20256;递给当前?#27809;?/p>

 

———故障排除1

使用key 会进入 api-001 ~]$ 模式

这样执行脚本,部份命令会没权限。所以需要进脚本进行对应修改

对需要权限的命令 前面加sudo

 

但是这样,sudo 后 传的?#38382;?#21448;没用了,因为使用sudo 会重置当前变量

解决

解决

1、sudo -E

-E选项在man page中的解释是:

-E

The -E (preserve environment) option indicates to the security policy that the user wishes to preserve their existing environment variables. The security policy may return an error if the -E option is specified and the user does not have permission to preserve the environment.

简单来说,就是?#30001;?E选项后,?#27809;?#21487;以在sudo执行时保留当前?#27809;?#24050;存在的环境变量,不会被sudo重置,另外,如果?#27809;?#23545;于指定的环境变量没有权限,则会报错。

$ sudo -E bash test.sh       # ?#30001;?E?#38382;?#21518;就可以获取到变量

Aaa

ERROR] Unknown lifecycle phase "Tests".

———–排错
ERROR] Unknown lifecycle phase "Tests". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]

新版本-Dskip Tests报错
解决,用 -Dmaven.test.skip=true  进行替换即可

正确格式
clean package -Dmaven.test.skip=true

以下是注释
Maven中-DskipTests和-Dmaven.test.skip=true?#37027;?#21035;
在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用?#38382;?DskipTests和-Dmaven.test.skip=true,这两个?#38382;?#30340;主要区别是:

-DskipTests,不执行测试用例,但编译测试用例类生?#19978;?#24212;的class文件至target/test-classes下。

-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。

maven本地打包和jenkins?#37027;?#21035;导致的问题

检查两个打包环境的nexus库是不是同一个,如不是改成一样就行

 

maven本地打包和jenkins打包不一样大

 

开发一个jar项目,由于要做消息发送端,就引用了公司kafka基本组件jar包。在本地跑的时候,什么问题都没有,然后提交代码到测试环境jenkins打包部署,然后发现日志怎么?#21363;?#19981;出来。

开始以为是测试环境的问题,可是这个项目之前是没有问题的。折腾了半天,把自己本地maven打的zip包和jenkins打的包比较,发现两个包里面的内容不一致。

最后检查出来的原因是在本地打包的时候,maven拉的是公司私库中的jar,而jenkins中如果配置了上层项目,那么它会直接到上层项目拉取内容打包,而不是到私库中拉取。

这里的问题是,私库中保存的jar是很老的版本,后期更新的时候没有进行替换,导致两个jar不一致。

上面是问题之一,如果只?#24039;?#36848;情况,不一定会出现日志打不出?#37027;?#20917;。比较私库中的jar和jinkens生成的jar发现,早起的私库中版本中没有log4j.xml文件,在本地运行不会和开发项目中的log4j.xml文件冲突,所以能正常运行.测试环境中最新的kafka组件jar包增加了log4j.xml ,并且这个开发的项目的启动脚本中,

nohup java $MEMORY $RMI -Dlog.home=$LOG_PATH -cp $JAR_LIST:$CONFIG_PATH $APP_CLASS 1>/dev/null 2>$PROJECT_PATH/ERROR&

先加载jar文件,后加载配置文件,jar中的配置文件如果和本地的配置文件重名,就有可能出现覆盖?#37027;?#20917;。

最后把启动脚本里面加载顺序更新之后,项目就能正常打印日志了

Jenkins的maven工程打包的时候怎么指定不同环境的配置文件

http://outofmemory.cn/code-snippet/6643/maven-profile-define-enviroment-package

在打包的时候我们添?#30001;?/p>

这里我们指定配置文件问test

这个是在pom.xml里面定义的,

里面有test,production和devlop三个定义

在不同环境使用Jenkins的时候,-P后面?#30001;?#19981;同的?#38382;?/p>

我这里是测试环境,所以我这里是-Ptest

现在我们来看一下pom.xml的部分内容

下面是配置测试的

下面的配置的生产的

30选5玩法