如果你正在周而復(fù)始干服務(wù)器部署的話。下面寫的一段shell 腳本應(yīng)該還是可以有點(diǎn)收獲的,還算是挺實(shí)用的。
最近部署了第幾次服務(wù)器,感覺寫的有點(diǎn)郁悶,為啥老是寫相同的東西呢,然后這個(gè)腳本就產(chǎn)生了。
實(shí)現(xiàn)思路
- ps 顯示進(jìn)程,grep篩選進(jìn)程,awk是一個(gè)強(qiáng)大的文本分析工具篩選出tomcat8的pid
- kill掉tomcat的進(jìn)程
- gradle 自動(dòng)編譯打包成war包,如果使用maven則換maven的打包即可
- 更新你的代碼,svn update 或者git pull 即可
- 最后在startup.sh 即可啟動(dòng)tomcat
- 最后的最后當(dāng)然是crontab -e 寫下你的定時(shí)任務(wù)了。然后你就可以愉快的寫代碼了。再也不用煩惱服務(wù)器部署的事了。
使用方法:
1. 相信了解linux的人都懂改的。
缺陷:
仍未實(shí)現(xiàn)的地方是,當(dāng)編譯錯(cuò)誤,項(xiàng)目啟動(dòng)失敗,沒有發(fā)送郵件給你。這個(gè)是很大的弊端的,也就是沒有錯(cuò)誤檢查了。
#!/bin/sh
TOMCAT='/mnt/service/apache-tomcat-8.0.37'
PROJECT='/mnt/project/ascmRedRain/redRainInterface'
echo "deploy redRainProject"
pidList=`ps -ef|grep apache-tomcat-8.0.37|grep -v 'grep'|awk '{print $2'}`
if [ "$pidList" = "" ]; then
echo "no tomcat pid alive"
else
echo "tomcat id list :$pidList"
kill -9 $pidList
echo "kill $pidList"
fi
echo "svn update and clean complier and package"
cd $PROJECT&&svn update&&gradle clean&&gradle war
rm -rf $TOMCAT/webapps/redRainInterface.war && rm -rf $TOMCAT/webapps/redRainInterface
echo "copy to tomcat webApps "
cp build/libs/redRainInterface.war $TOMCAT/webapps/
echo "start tomcat ! Go Go Go!!!"
cd $TOMCAT && ./bin/startup.sh
<h1>最后點(diǎn)個(gè)??吧。</h1>