刪除Jenkins的構建次數(基於Jmeter的Maven專案)
#!/bin/sh
#set就是當命令以非零狀態退出時,則退出shell。主要作用是,當指令碼執行出現意料之外的情況時,立即退出,避免錯誤被忽略,導致最終結果不正確
set -e #${JOB_NAME}=$1 ${BUILD_NUMBER}=$2 buidNo=$2
#let 命令是 BASH 中用於計算的工具,用於執行一個或多個表示式,變數計算中不需要加上 $ 來表示變數。如果表示式中包含了空格或其他特殊字元,則必須引起來。語法:let a=5+4
let
buidNo=buidNo-10
#cd /data/soft/jenkins/jobs/$1/builds/ #這是114機器的路徑
cd /data/jenkins-read/jobs/$1/builds
#rm 使用者可以用rm命令刪除不需要的檔案。該命令的功能為刪除一個目錄中的一個或多個檔案或目錄,它也可以將某個目錄及其下的所有檔案及子目錄均刪除。對於連結檔案,只是斷開了連結,原檔案保持不變。
# -r/R --recursive 同時刪除該目錄下的所有目錄層 # -f --force 略過不存在的檔案,不顯示任何資訊,強制刪除
rm -fr ${buidNo}
cp -r newBuild ${buidNo}
ln -s newBuild $2
# maxdepth 指定遍歷搜尋的最大深度
# -mtime+1
#表示檔案修改時間為大於1天的檔案,即距離當前時間2天(48小時)之外的檔案這也能解釋了,為什麼6號22點生成的這個檔案為什麼沒有輸出出來這裡-##time +1 為什麼是48小時以外,而不是24小時以外呢,因為n只能是整數,比1大的下一個整數是2,所以是48小時以外的 #-exec command:command 為其他指令,-exec後面可再接額外的指令來處理搜尋到的結果。
#“rm -rf /”意味著擦除根路徑“/”下掛載的所有內容而無需詢問 #{} 對一串命令在當前shell執行
find ./ -maxdepth 1 -mtime +3 -name "*" -exec rm -rf {} \;
exit 0
注意,$1,$2為執行sh命令時,佔位傳輸過來的比如,該指令碼名稱叫ClearJenkinsJob.sh:
sh "/data/jenkins-read/workspace/testfiles/libs/ClearJenkinsJob.sh ${env.JOB_NAME} ${env.BU