代碼關鍵字被批量替換。僅供參考。java
#!/bin/sh
sitesPath="/ggcall/sites/"
DATE=$(date +%Y%m%d%H%M)
softfile="/home/ggstar/Arhasgg/"
sitesbackup="/home/ggstar/sitesbackup/"
githome="/home/ggstar/Arhasgg/"
#設置環境變量
source /etc/profile
echo "請確認使用該命令,已經從git庫拉取了最新的代碼,使用了正確的分支"
cd $githome
echo "git分支名稱:"+`git branch |awk '{print $4}'|head -3`
echo "編譯工程,靜默方式,過程若是報錯會提示,提示需檢查錯誤後從新編譯!"
echo "默認gg-sdk-wx未編譯,如更新需本地上傳/home/ggstar/.m2/repository/com/gg/sdk/gg-sdk-wx/0.0.1/gg-sdk-wx-0.0.1.jar"
echo "依賴包編譯"
cd $githome"gg-aggregator"
mvn -q -ff clean install
echo "編譯gg-passport"
cd $githome"gg-passport"
mvn -q -ff clean install -P st
cd $githome"gg-openApi"
echo "編譯gg-opanApi"
mvn -q -ff clean install -P st
echo "編譯gg-imgr-webbent"
cd $githome"gg-imgr-webent"
mvn -q -ff clean install -P st
echo "編譯gg-wm-webent"
cd $githome"gg-wm-webent"
mvn -q -ff clean install -P st
echo "編譯gg-img-webent"
cd $githome"gg-img-webent"
mvn -q -ff clean install -P st
echo "編譯gg-job-webent"
cd $githome"gg-job-webent"
mvn -q -ff clean install -P st
echo "編譯gg-sn-webent"
cd $githome"gg-sn-webent"
mvn -q -ff clean install -P st
echo "編譯gg-app-webent"
cd $githome"gg-app-webent"
mvn -q -ff clean install -P st
echo "編譯gg-yum-webent"
cd $githome"gg-yum-webent"
mvn -q -ff clean install -P st
echo "編譯發佈完成"
#刪除須要更新的原文件
if [ -f $softfile"gg-imgr-webent/target/gg-imgr-webent.war" ]; then
#echo "back-un--to--"$sitesbackup
#tar -zcf $sitesbackup"imgr"/$DATE.tar.gz -P $sitesPath"imgr/ROOT"
#echo "備份完成!"
echo "imgr update---------------------"
cd $sitesPath"imgr/ROOT"
rm -fr `ls $sitesPath"imgr/ROOT" -I shopInfo`
echo "刪除完成!"
unzip -q $softfile"gg-imgr-webent/target/gg-imgr-webent.war" -d $sitesPath"imgr/ROOT"
echo "imgr解壓完成!"
fi
if [ -f $softfile"gg-passport/target/gg-passport.war" ]; then
#echo "back-un-------------"
#tar -zcf $sitesbackup"passport"/$DATE.tar.gz -P $sitesPath"passport/ROOT"
echo "passport update---------------------"
cd $sitesPath"passport/ROOT"
rm -fr `ls $sitesPath"passport/ROOT" -I shopInfo`
echo "刪除完成!"
unzip -q $softfile"gg-passport/target/gg-passport.war" -d $sitesPath"passport/ROOT"
echo "passport解壓完成!"
fi
if [ -f $softfile"gg-job-webent/target/gg-job-webent.war" ]; then
#echo "back-un-------------"
#tar -zcf $sitesbackup"job"/$DATE.tar.gz -P $sitesPath"job/ROOT"
echo "job update------------"
cd $sitesPath"job/ROOT"
rm -fr `ls $sitesPath"job/ROOT" -I shopInfo`
echo "刪除完成!"
unzip -q $softfile"gg-job-webent/target/gg-job-webent.war" -d $sitesPath"job/ROOT"
echo "job解壓完成!"
fi
if [ -f $softfile"gg-wm-webent/target/gg-wm-webent.war" ]; then
#echo "back-un-------------"
#tar -zcf $sitesbackup"wm"/$DATE.tar.gz -P $sitesPath"wm/ROOT"
echo "wm update-----------------"
cd $sitesPath"wm/ROOT"
rm -fr `ls $sitesPath"wm/ROOT" -I shopInfo`
echo "刪除完成!"
unzip -q $softfile"gg-wm-webent/target/gg-wm-webent.war" -d $sitesPath"wm/ROOT"
echo "wm解壓完成!"
fi
#司南
if [ -f $softfile"gg-sn-webent/target/gg-sn-webent.war" ]; then
#echo "back-un-------------"
#tar -zcf $sitesbackup"sn"/$DATE.tar.gz -P $sitesPath"sn/ROOT"
echo "sn update-----------------"
cd $sitesPath"sn/ROOT"
rm -fr `ls $sitesPath"sn/ROOT" -I shopInfo`
echo "刪除完成!"
unzip -q $softfile"gg-sn-webent/target/gg-sn-webent.war" -d $sitesPath"sn/ROOT"
echo "sn解壓完成!"
fi
#img
if [ -f $softfile"gg-img-webent/target/gg-img-webent.war" ]; then
#echo "back-un-------------"
#tar -zcf $sitesbackup"img"/$DATE.tar.gz -P $sitesPath"img/ROOT"
echo "img update-----------------"
cd $sitesPath"img/ROOT"
rm -fr `ls $sitesPath"img/ROOT" -I shopInfo`
echo "刪除完成!"
unzip -q $softfile"gg-img-webent/target/gg-img-webent.war" -d $sitesPath"img/ROOT"
echo "img解壓完成!"
fi
#yum
if [ -f $softfile"gg-yum-webent/target/gg-yum-webent.war" ]; then
echo "yum update-----------------"
cd $sitesPath"yum/ROOT"
rm -fr `ls $sitesPath"yum/ROOT" -I shopInfo`
echo "刪除完成!"
unzip -q $softfile"gg-yum-webent/target/gg-yum-webent.war" -d $sitesPath"yum/ROOT"
echo "yum解壓完成!"
fi
#webapp
if [ -f $softfile"gg-app-webent/target/gg-app-webent.war" ]; then
echo "app update-----------------"
cd $sitesPath"app/ROOT"
rm -fr `ls $sitesPath"app/ROOT" -I shopInfo`
echo "刪除完成!"
unzip -q $softfile"gg-app-webent/target/gg-app-webent.war" -d $sitesPath"app/ROOT"
echo "app解壓完成!"
fi
#openApiAPI
if [ -f $softfile"gg-openApiApi/target/gg-openApi.war" ]; then
echo "openApi update-----------------"
cd $sitesPath"openApi/ROOT"
rm -fr `ls $sitesPath"openApi/ROOT" -I shopInfo`
echo "刪除完成!"
unzip -q $softfile"gg-openApiApi/target/gg-openApi.war" -d $sitesPath"openApi/ROOT"
echo "openApiAPI解壓完成!"
fi
#mock
#if [ -f $softfile"gg-mock-webent/target/gg-mock-webent.war" ]; then
#echo "mock update-----------------"
#cd $sitesPath"mock/ROOT"
#rm -fr `ls $sitesPath"mock/ROOT" -I shopInfo`
#echo "刪除完成!"
#unzip -q $softfile"gg-mock-webent/target/gg-mock-webent.war" -d $sitesPath"mock/ROOT"
#echo "mock解壓完成!"
#fi
#結束tomcat進程
kill -9 ${k}`ps -fe |grep tomcat |awk '{print $2}'|head -3`
#開啓tomcat
cd /ggcall/servers/apache-tomcat-8.5.4-80/bin
./startup.sh
#log
#echo "Logs if ERROR show~~"
#tail -f /ggcall/servers/apache-tomcat-8.5.4-80/logs/catalina.out
代碼當中還增長了rpc的編譯和發佈內容。腳本代碼數明顯下降。使用了若干新學技能。
包括shell的(流程控制while、if、awk命令、&&命令狀態、let和expr語句執行代數運算、數組、定向>、nohub + &)git
#!/bin/bash
githome="/home/ggstar/Arhasgg/"
sitesPath="/ggcall/sites/"
DATE=$(date +%Y%m%d%H%M)
softfile="/home/ggstar/Arhasgg/"
sitesbackup="/home/ggstar/sitesbackup/"
#設置環境變量
source /etc/profile
webents=(gg-aggregator gg-img-webent gg-wm-msger gg-app-webent gg-job-webent gg-openApi gg-wm-webent gg-yum-webent gg-imgr-webent gg-passport gg-sn-webent gg-imgr-rpc gg-yum-rpc)
longth=${#webents}
RPM=0
#git拉取代碼
echo "請確認使用該命令,已經從git庫拉取了最新的代碼,使用了正確的分支"
cd ${githome}
#echo "git分支名稱:"+`git branch |awk '{print $4}'|head -3`
echo "git分支名稱:"+`git status |awk '{print $4}' |head -1`
echo "拉取當前分支代碼"
git pull origin `git status |awk '{print $4}'|head -1|awk -F 'in/' '{print $2}'`
echo "編譯工程,靜默方式,過程若是報錯會提示,提示需檢查錯誤後從新編譯!"
while [ $RPM -lt $longth ] && [ $? -eq 0 ]
do
cd ${githome}${webents[$RPM]} && echo "編譯${webents[$RPM]}"
mvn -q -ff clean install -P st && echo "${webents[$RPM]}編譯完成!"
let RPM++
done
#更新rpc
longthpub=`expr $longth - 3`
RPM=$longthpub
while [ $RPM -lt $longth ] && [ $? -eq 0 ]
do
if [ -f $softfile"${webents[$RPM]}/target/${webents[$RPM]}.jar" ]; then
webentname=`echo ${webents[$RPM]}`
siteName=`echo ${webentname#*-}`
#判斷是否存在webent,不存在則新建
if [ ! -d $sitesPath${siteName} ]; then
mkdir -p $sitesPath${siteName}
#echo ${webents[$RPM]}|awk -F '-' '{print $2}'
fi
#執行代碼更新操做
echo "$siteName更新---------------------"
kill -9 ${k}`ps -fe |grep $siteName |awk '{print $2}'|head -2`
cd $sitesPath${siteName} && rm -fr `ls $sitesPath${siteName}` && echo "刪除完成!"
cp -r $softfile"${webents[$RPM]}/target/lib" $softfile"${webents[$RPM]}/target/${webents[$RPM]}.jar" $sitesPath${siteName} && echo "$siteName解壓完成!"
sleep 10
nohup java -Xms512m -Xmx1024m -jar ${webents[$RPM]}.jar > ${webents[$RPM]}".log" &
fi
let RPM++
done
#更新webent
RPM=1
longthpub=`expr $longth - 2`
while [ $RPM -lt $longthpub ]
do
if [ -f $softfile"${webents[$RPM]}/target/${webents[$RPM]}.war" ]; then
siteName=`echo ${webents[$RPM]}|awk -F '-' '{print $2}'`
#判斷是否存在webent,不存在則新建
if [ ! -d $sitesPath${siteName}"/ROOT" ]; then
mkdir -p $sitesPath${siteName}"/ROOT"
#echo ${webents[$RPM]}|awk -F '-' '{print $2}'
fi
#執行代碼更新操做
echo "$siteName 更新---------------------"
cd $sitesPath${siteName}"/ROOT" && rm -fr `ls $sitesPath${siteName}"/ROOT" -I shopInfo` && echo "刪除完成!"
unzip -q $softfile"${webents[$RPM]}/target/${webents[$RPM]}.war" -d $sitesPath${siteName}"/ROOT" && echo "$siteName解壓完成!"
fi
let RPM++
done
#結束tomcat進程
kill -9 ${k}`ps -fe |grep tomcat |awk '{print $2}'|head -3`
#開啓tomcat
cd /ggcall/servers/apache-tomcat-8.5.4-80/bin
./startup.sh