jenkins(四)問題記錄

1、在jenkins命令行執(zhí)行cd 命令無效

使用過程中,發(fā)現(xiàn)在commond中使用cd是無效的,此時(shí)針對(duì)不同的服務(wù)寫了不同的sh腳本,在內(nèi)部去做目錄的切換。

解決方案:

使用source的方式是cd生效:

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

2、啟動(dòng)腳本的tail -f **log,導(dǎo)致build無法完成

在我們的start.sh腳本中,會(huì)調(diào)用日志查看方法:

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

tail 命令在執(zhí)行腳本后不會(huì)自動(dòng)停止,導(dǎo)致構(gòu)建一支進(jìn)行。
會(huì)一直輸出日志,導(dǎo)致構(gòu)建不能停止,提供一個(gè)監(jiān)聽listener方法,一段時(shí)間后殺死日志進(jìn)程。

解決方案

如下腳本所示,在執(zhí)行start.sh時(shí),同時(shí)執(zhí)行l(wèi)istener函數(shù),每五秒去查看日志進(jìn)程的狀態(tài),達(dá)到50s后,就殺死日志進(jìn)程,使腳本執(zhí)行結(jié)束,同時(shí)項(xiàng)目構(gòu)建完成。

#!/bin/bash

# 監(jiān)聽日志進(jìn)程,一段時(shí)間后殺死日志進(jìn)程,完成構(gòu)建
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 "項(xiàng)目已啟動(dòng),停止日志打印";
         ps -ef |grep "/logs/inbox_model" |grep -v grep|awk '{print $2}' |xargs kill
         break;
    else
        echo "項(xiàng)目啟動(dòng)中";
    fi
done
}

sleep 5
cd /opt/esmp
# 當(dāng)文件不存在,即首次部署此項(xiàng)目時(shí),不需要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可以根據(jù)項(xiàng)目實(shí)際啟動(dòng)的時(shí)間去設(shè)置。

3、找不到MANIFEST.MF

構(gòu)建過程中,可能會(huì)存在找不到MANIFEST.MF的問題,這個(gè)是start.sh腳本中獲取啟動(dòng)參數(shù)的文件。找不同通常是在啟動(dòng)構(gòu)成中沒有生成。直接運(yùn)行start.sh腳本沒有問題。

原因

jar: commond not found,在安裝jdk時(shí)候沒有建立軟連接,導(dǎo)致jar命令找不到。

解決方案

在/usr/bin目錄下創(chuàng)建jar的軟連接

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

4、環(huán)境變量不生效問題

發(fā)現(xiàn)在有些服務(wù)器沒有此問題,個(gè)別服務(wù)器存在腳本執(zhí)行始終不生效的問題,還是環(huán)境變量導(dǎo)致的問題。

解決方案

在腳本中增加 source /etc/profile

解決方案

5、硬盤被占滿問題

jenkins構(gòu)建過程很占用硬盤空間,當(dāng)硬盤被占滿后,會(huì)導(dǎo)致無法構(gòu)建、在配置中,git,SSH等憑證無法選擇而報(bào)錯(cuò),如果突然出現(xiàn)這樣的問題,可以考慮是硬盤的問題。

解決辦法

1)新建項(xiàng)目要選擇丟棄舊構(gòu)建的參數(shù),并將參數(shù)設(shè)置的小一點(diǎn),通常來說歷史構(gòu)建對(duì)我們來講是沒用的。
2)構(gòu)建過程中有兩個(gè)文件占用時(shí)很大的(以下兩種方式均不會(huì)影響后面額構(gòu)建,通常清理job最有效):
一個(gè)是job文件夾,此文件夾內(nèi)的內(nèi)容可以直接手動(dòng)刪除;

另一個(gè)是workspace文件夾,次文件可以在界面刪除,
清理

6、服務(wù)器掉電導(dǎo)致項(xiàng)目丟失

解決辦法

安裝ThinBackup插件

image.png

7、項(xiàng)目丟失重新搭建構(gòu)建無效

在重新搭建項(xiàng)目并且構(gòu)建后,發(fā)現(xiàn)沒有反應(yīng),只需要?jiǎng)h除以前的構(gòu)建記錄就可以了。

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容