#!/bin/shshell
#set就是當命令以非零狀態退出時,則退出shell。主要做用是,當腳本執行出現意料以外的狀況時,當即退出,避免錯誤被忽略,致使最終結果不正確工具
set -e #${JOB_NAME}=$1 ${BUILD_NUMBER}=$2 buidNo=$2ui
#let 命令是 BASH 中用於計算的工具,用於執行一個或多個表達式,變量計算中不須要加上 $ 來表示變量。若是表達式中包含了空格或其餘特殊字符,則必須引發來。語法:let a=5+4spa
let jenkins
buidNo=buidNo-10 it
#cd /data/soft/jenkins/jobs/$1/builds/ #這是114機器的路徑test
cd /data/jenkins-read/jobs/$1/builds 變量
#rm 用戶能夠用rm命令刪除不須要的文件。該命令的功能爲刪除一個目錄中的一個或多個文件或目錄,它也能夠將某個目錄及其下的全部文件及子目錄均刪除。對於連接文件,只是斷開了連接,原文件保持不變。file
# -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.BUILD_NUMBER}"