Jenkins重启后符号链接失效、构建记录从仪表盘消失问题求助
解决Jenkins 2.114重启后构建记录消失与符号链接失效问题
我来帮你排查这两个重启后出现的Jenkins问题,结合你的环境和已做的操作,给你几个针对性的解决方向:
一、构建记录在Dashboard消失(日志文件仍存在)
这个问题大概率是Jenkins的构建索引文件损坏或者权限配置不对导致的,你可以按以下步骤处理:
- 检查目录与文件权限:Jenkins运行用户(通常是
jenkins用户)必须拥有构建目录的完整权限,否则重启后无法读取构建记录。执行以下命令修复权限:sudo chown -R jenkins:jenkins ${JENKINS_HOME}/jobs/${ITEM_FULL_NAME}/builds sudo chmod -R 755 ${JENKINS_HOME}/jobs/${ITEM_FULL_NAME}/builds - 重建构建索引文件:每个Job的
builds目录下有个builds.xml文件,这是Jenkins用来索引构建记录的核心文件,如果它损坏,Jenkins就没法识别已有的构建。先备份再删除,让Jenkins重新生成:
之后在Jenkins界面执行「从磁盘重新加载配置」,再重启Jenkins服务,看看构建记录是否恢复。cd ${JENKINS_HOME}/jobs/${ITEM_FULL_NAME}/builds cp builds.xml builds.xml.bak rm builds.xml
二、重启后Symlinks/Permalinks失效
符号链接失效通常和Java的权限限制、链接本身的有效性有关,试试这两个方法:
- 添加Java参数允许符号链接访问:Java默认可能限制对符号链接的处理,你已经配置了
-Djava.awt.headless=true,可以再加上-Djdk.io.File.enableADS=true参数(适用于Java 8及以上,Jenkins 2.114适配Java 8)。修改/etc/sysconfig/jenkins中的配置:
保存后重启Jenkins服务:JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djdk.io.File.enableADS=true"sudo systemctl restart jenkins - 重新创建失效的符号链接:如果是链接本身指向的目标路径错误(比如手动迁移过构建目录),可以手动重建。比如修复
lastSuccessful链接:cd ${JENKINS_HOME}/jobs/${ITEM_FULL_NAME}/builds rm lastSuccessful # 替换<构建号>为实际存在的成功构建目录,比如10 ln -s ./<构建号> lastSuccessful
如果以上方法都无效,考虑到Jenkins 2.114是比较老的版本,可能存在已知的bug,你可以尝试升级到同系列的最新LTS版本(比如2.176.x系列),不过升级前记得备份${JENKINS_HOME}目录。
内容的提问来源于stack exchange,提问作者Ritica Ramakrishnan
相关产品推荐
相关产品推荐

