jenkins(四)问题记录

作者: 我犟不过你 | 来源:发表于2021-06-10 16:33 被阅读0次

    1、在jenkins命令行执行cd 命令无效

    使用过程中,发现在commond中使用cd是无效的,此时针对不同的服务写了不同的sh脚本,在内部去做目录的切换。

    解决方案:

    使用source的方式是cd生效:

    source /opt/esmp/jenkins/inbox-model.sh
    

    2、启动脚本的tail -f **log,导致build无法完成

    在我们的start.sh脚本中,会调用日志查看方法:

    log() {
       status
       if [ ! -z "${pid}" ]; then
        log=`lsof -p $pid | grep "logs/.*[0-9]*\.log"| awk '{print $NF}'`
        tail -fn 100 $log
       fi
    }
    

    tail 命令在执行脚本后不会自动停止,导致构建一支进行。
    会一直输出日志,导致构建不能停止,提供一个监听listener方法,一段时间后杀死日志进程。

    解决方案

    如下脚本所示,在执行start.sh时,同时执行listener函数,每五秒去查看日志进程的状态,达到50s后,就杀死日志进程,使脚本执行结束,同时项目构建完成。

    #!/bin/bash
    
    # 监听日志进程,一段时间后杀死日志进程,完成构建
    listener()
    {
    while true
    
    do
        sleep 5
        num= `ps -ef | grep 'inbox_model-3.0.jar' | grep -v grep | wc -l`
        flag= 1
        echo "$num"
        if [[ $num -eq $flag ]]; then
             sleep 50
             echo "项目已启动,停止日志打印";
             ps -ef |grep "/logs/inbox_model" |grep -v grep|awk '{print $2}' |xargs kill
             break;
        else
            echo "项目启动中";
        fi
    done
    }
    
    sleep 5
    cd /opt/esmp
    # 当文件不存在,即首次部署此项目时,不需要stop
    if [ -d "/opt/esmp/inbox-model-3.0" ];then
      cd /opt/esmp/inbox-model-3.0
      ./start.sh stop
      cd ../
      rm -rf inbox-model-3.0
    fi
    
    unzip inbox-model-3.0-bin.zip
    cd inbox-model-3.0
    ./start.sh start & listener
    

    上述的50s可以根据项目实际启动的时间去设置。

    3、找不到MANIFEST.MF

    构建过程中,可能会存在找不到MANIFEST.MF的问题,这个是start.sh脚本中获取启动参数的文件。找不同通常是在启动构成中没有生成。直接运行start.sh脚本没有问题。

    原因

    jar: commond not found,在安装jdk时候没有建立软连接,导致jar命令找不到。

    解决方案

    在/usr/bin目录下创建jar的软连接

    cd /usr/bin
    ln -s  /usr/java/jdk1.8.0_172-amd64/bin/jar jar
    

    4、环境变量不生效问题

    发现在有些服务器没有此问题,个别服务器存在脚本执行始终不生效的问题,还是环境变量导致的问题。

    解决方案

    在脚本中增加 source /etc/profile

    解决方案

    5、硬盘被占满问题

    jenkins构建过程很占用硬盘空间,当硬盘被占满后,会导致无法构建、在配置中,git,SSH等凭证无法选择而报错,如果突然出现这样的问题,可以考虑是硬盘的问题。

    解决办法

    1)新建项目要选择丢弃旧构建的参数,并将参数设置的小一点,通常来说历史构建对我们来讲是没用的。
    2)构建过程中有两个文件占用时很大的(以下两种方式均不会影响后面额构建,通常清理job最有效):
    一个是job文件夹,此文件夹内的内容可以直接手动删除;

    另一个是workspace文件夹,次文件可以在界面删除, 清理

    6、服务器掉电导致项目丢失

    解决办法

    安装ThinBackup插件

    image.png

    7、项目丢失重新搭建构建无效

    在重新搭建项目并且构建后,发现没有反应,只需要删除以前的构建记录就可以了。

    image.png

    相关文章

      网友评论

        本文标题:jenkins(四)问题记录

        本文链接:https://www.haomeiwen.com/subject/uezseltx.html