[參考]
博主心得:
構建指令碼可以寫入到shell指令碼檔案中,這樣避免多個同型別專案每次都要貼上一次,以便做到統一管理同型別專案構建策略。
另外我也對指令碼進行了一些小調整,備份清理指令碼可以通過引數進行傳遞,以便不同專案針對不同情況設定,無參傳遞則使用預設值:5
# 自動備份部署war包/data/deploy/auto-bak-deploy-war.sh
#!/usr/bin# 自動備份部署war包
filedir=$/bak/#備份目錄
case $status in
deploy)
echo
"status:$status
"path="
$/$"
#建立每次要備份的目錄
if [ -d $path ];
then
echo
"the files is already exists
"else
mkdir -p $path
fi\cp -f $/target/*
.war $path #將打包好的war包備份到相應目錄,覆蓋已存在的目標
echo "\cp -f $/target/*.war $"
echo "completing!"
;;rollback)
echo "status:$status"
echo "version:$version"
cd $/$version #進入備份目錄
\cp -f *.war $/target/ #將備份拷貝到程式打包目錄中,並覆蓋之前的war包
echo "\cp -f $/$/*.war $/target/"
;;*)
exit
;;esac
echo -e "current bak version list:" $(ls $) "\n\n"
#自動清理過期部署war包
/data/deploy/auto-clear-expire-bak-deploy-war.sh
#!/user/binjenkins構建shell指令碼:# 自動清理過期部署war包
defaultreservednum=5
# 預設保留檔案數
# 是否有引數傳遞保留檔案數
if [ "
$1" ];then
expr $1 + 0 &>/dev/null
if [ $? == 0 -a $1 > 0 ] ;then
reservednum=$1
#保留檔案數
else
reservednum=$
fielse
reservednum=$fi(
date
"+%y%m%d-%h%m%s")
echo
reservednum: $
filedir=$/bak/#備份目錄
cd $filedir #進入備份目錄
filenum=$(ls -l | grep'^d
' | wc -l) #當前有幾個資料夾,即幾個備份
while(( $filenum >$reservednum))
dooldfile=$(ls -rt | head -1
) #獲取最舊的那個備份檔案夾
echo $date
"delete file:
"$oldfile
rm -rf $filedir/$oldfile
let
"filenum--
"done
echo -e "
current bak version list:
" $(ls $) "
\n\n
"
git本地版本回滾與遠端版本回滾
1 檢視git 提交 git log 該命令顯示從最近到最遠的提交日誌。hard選項,表示徹底將工作區 暫存區和版本庫記錄恢復到指定的版本庫 遠端分支版本回退的方法 1.首先要回退本地分支 git reset hard commitid 2 強制推送到遠端分支 git push f origin m...
svn 版本回滾
svn 版本回滾 取消對 的修改分為兩種情況 第一種情況 改動沒有被提交 commit 這種情況下,使用svn revert就能取消之前的修改。svn revert用法如下 svn revert r something 其中something可以是 目錄或檔案的 相對路徑也可以是絕對路徑。當some...
linux svn 版本回滾
實踐經驗總結 1 svn log 檢視當前最新版本和需要回滾到的版本。假設當前最近版本是 r201526 需要回滾到的版本是 r197364 2 如果本地的 和版本r201526一致 無diff 這種情況下 svn merge r 201526 197364 svn ci m roll back t...