小麦是一名开发人员,天天写完代码后,都要打包部署到集成环境,而后等着测试人员测试,测试人员提出bug时,小麦懊恼的修改着bug,而后修改代码,从新提交SVN,从新打包,上传到集成服务器,而后重启服务器,这么重复的工做,小麦忍不了了,决定化繁为简。linux
小麦想着最近本身一直在学linux shell编程,是时候展现一波真正的技术了。刚学到新的命令:rz,小麦跃跃欲试。小麦一想,有了rz命令,不再用点那个该死的Xftp了。可是启停服务器仍是得执行两次命令,这个xshell能不能一次两台服务器一块儿搞啊,立马百度了下,还真有发送命令到全部会话,如图:web
小麦立马开工,同时杀掉两台服务器Tomcat进程,而后rz上传最新打的包,而后从新启动Tomcat。
shell
小麦边敲代码边想,这样仍是啰嗦,Tomcat我凭什么执行一次中止,一次启动,写一个脚本自停自启好了。可是中止进程后,我还须要上传包才行,怎么办?突然测试说,图片服务器的图片没法展现,小麦一看,最新的图片还没上传到图片服务器,立马将图片上传图片服务器。忽然眼前一亮,我先把打好的包放到一个路径下,而后写一个脚本,中止Tomcat进程后,把最新的包mv到指定目录下,而后重启不就ok了,哈哈,说干就干。编程
#找到tomcat进程id
$p_tomcat = jps -v | grep tomcat8.5/ | awk -F ' ' '{printf $1}'
#杀死进程
kill -9 $p_tomcat
#上传war包目录
d_xiaomai=/app/xiaomai/
#tomcat目录
tomcat=/app/tomcat8.5
#清除tomcat项目
rm -rf $tomcat/webapps/apollo*
#移动包到tomcat下
mv $d_xiaomai/apollo.war $tomcat/webapps/apollo.war
#重启tomcat
$tomcat/bin/startup.shtomcat
小麦如今扔掉了xftp,而后同时操做两台服务器,用脚本从新发布。试了一下,没什么问题,小麦窃喜。不一会,测试又来找小麦了,又发现了一个bug,小麦高兴的脸又阴沉下去,再次回到idea修改代码,而后从新发布。小麦越想越不爽,我提交完代码,测试环境直接更新打包部署就行了,我为啥还要一次次上传,本地打好包,再上传服务器,服务器本身打包不就行了,小麦开始盘算怎么再智能一些。小麦嘴里念叨着:我须要一个svn,而后再来一个maven,彻底ok,说完立马在测试环境安装了svn,maven,而后修改脚本代码,再次敲击起键盘。服务器
#svn指定目录
d_xiaomai=/app/xiaomai/
#切换到svn目录
cd $d_xiaomai
#指定svn目录下更新
svn up
echo 'SVN更新项目完成......'
#maven打包
mvn clean package -Dmaven.test.skip=true
echo 'Maven编译打包项目完成......'app
小麦高兴的眯着眼,这回只要本地更新代码测试后,提交svn,测试环境一个脚本就能够直接从新发布服务了。webapp