部署新应用shell

经常开发时部署应用到服务器调试,一系列重复操作实在无趣,于是写了个一键部署的shell,以求解放。

功能:

  • 终止Tomcat进程
  • 备份原应用
  • 部署新应用
  • 替换相应配置文件
  • 启动Tomcat
  • 显示Tomcat运行日志

#!/bin/bash
#部署新应用 by xl @ 2014-8-1 15:13:14
#last modify @ 2014-8-4 14:25:31

#获取最新war包
echo ">GET NEW WAR"
scp root@x.x.x.x:/home/xl/war/webapp.war /home/xl/war/webapp.war

##参数设置##
tomcatPath="/home/xl/tomcat"
warPath="/home/xl/war/webapp.war"
appName="webapp"
webappsPath="$tomcatPath/webapps"
bakPath="$tomcatPath/webapps_bak"

#杀死tomcat进程
#ps x|grep "/home/xl/tomcat"|grep -v "grep"|grep -v "sh"|awk '{print $1}'|xargs kill -9
pid=$(ps x|grep "$tomcatPath"|grep -v "grep"|grep -v "sh"|awk '{print $1}')
#ps x|grep "/home/xl/tomcat"|grep -v "grep"|grep -v "sh"|awk -F '[ +]'  '{print $1}'
if [ -n "$pid" ]; then
    #PID NOT EMPTY
    #进程存在则中止
	kill -9 $pid
	echo ">KILL PID: " $pid
fi

#备份原应用
if [ ! -d $bakPath ]; then
#如果备份目录不存在,则新建
	mkdir "$bakPath"
fi
bakNowPath="$bakPath/$(date +%Y%m%d_%H%M%S)"
mkdir "$bakNowPath"
echo ">BAK DIRECTORY: $bakNowPath"

#BAK
mv "$webappsPath/$appName"* "$bakNowPath"
echo "[$webappsPath]"
ls "$webappsPath"|grep "$appName"
echo "[$bakNowPath]"
bakApp=$(ls "$bakNowPath"|grep "$appName")
echo $bakApp
if [ -n "$bakApp" ]; then
        echo ">BAKED"
else
        echo ">BAK FAIL"
fi

#DEPLOY
#mv "$warPath" "$webappsPath"
#UNZIP
unzip -q "$warPath" -d "$webappsPath/$appName"
echo ">DEPLOY NEW WAR"
echo "[$webappsPath/$appName]"
ls "$webappsPath/$appName"
#REPLACE
#替换配置文件:如数据库连接配置
cp "./bak/jdbc.properties" "$webappsPath/$appName/WEB-INF/classes"
echo ">REPLACED"
echo ">DEPLOYED"

#CONFIRM
#是否启动Tomcat
echo -e "Start WebApp? (y/ENTER or n)\c"
read input
#if [ -n "$input" ] && [ "y" != "$input" ] && [ "Y" != "$input" ]; then
if [ -n "$input" -a "y" != "$input" -a "Y" != "$input" ]; then	
	#用户有输入则退出;直接输入回车则继续
	echo ">EXIT"
	exit 0
fi

#START
#sh "$tomcatPath/bin/startup.sh"
#可以避免关闭终端连接 导致 tomcat进程的关闭
nohup "$tomcatPath/bin/startup.sh" &
echo ">START WEBAPP.."

#SHOW LOG
echo ">SHOW LOG.."
tail -f "$tomcatPath/logs/catalina.out"


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值