机器搬迁,要把jenkins服务器迁移到其他的机器上,下面是操作步骤:
- 停掉tomcat
- .jenkins/workspace文件夹太大,按理说这个可以不迁移,里面就是check的代码,及其构建产物
- zip -r jenkins-bak.zip ~/.jenkins,对.jenkins文件夹进行zip压缩。
- copy jenkins-bak.zip到新机器,unzip jenkins-bak.zip
- 启动tomcat
服务启动后,所有的任务console会报这个错误:
ln builds/lastSuccessfulBuild ***/lastSuccessful failed
java.nio.file.DirectoryNotEmptyException: ***/.jenkins/jobs/newlabs_biz/lastSuccessful
.
.
.
ln builds/lastStableBuild ***/.jenkins/jobs/newlabs_biz/lastStable failed
java.nio.file.DirectoryNotEmptyException: ***/.jenkins/jobs/newlabs_biz/lastStable
console报这个错误,但不影响job运行。原因是jenkins ln命令执行失败,将命令直接在linux中执行报错,信息为ln不能对文件夹创建硬链接(原因自行google)。
错误原因:
zip -r命令,在遇到文件链接的时候,会自动把目标文件拉去过来进行压缩,打进压缩包中;实际上在jenkins中,***/lastSuccessful是个链接文件,而经过zip、unzip变成了文件夹,所以迁移后的jenkins再进行ln操作,就会出现上述的错误。
解决方法:
知道了原因,解决方法就简单了,删除所有job的 ***/lastSuccessful、lastStable这两个文件夹,可以手动创建文件链接(当然也可以不创建,后续再执行job会自动生成)。
版权声明
本站文章、图片、视频等(除转载外),均采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0),转载请注明出处、非商业性使用、并且以相同协议共享。
© 空空博客,本文链接:https://www.yeetrack.com/?p=1081
这个算是找到问题,不算是解决问题哈