您的位置:首页 > 运维架构 > Shell

Shell 脚本 更换tomcat集群war包

2014-11-04 18:08 351 查看
运行之前将服务器弄成免ssh登陆。

配置文件没有太大的改动 可以覆盖之前的配置

profile 配置文件

bak=/home/wsm/bak

webapps=/home/wsm/webapps/WSMMeasure

arry=192.168.68.29 192.168.10.147

newwar=1.war

deplypath=/home/wsm/deploy

scp.sh 拷贝相关war和脚本到远程服务上

scp.sh

#!/bin/bash
#拷贝war|deploy.sh|profile
#scp 1.war deploy.sh profile root@192.168.68.29:/home/wsm 
scpdep(){
echo 'Start Scp ...'
scp $1 deploy.sh backup.sh profile $2@$3:$4 
echo 'End Scp ...'
}
#arry ="192.168.68.29 192.168.10.147"

host=`awk -F '=' '{if($1=="arry")print $2}' profile`
newwar=`awk -F '=' '{if($1=="newwar")print $2}' profile`
for i in $host
do 
echo 'scp root@'$i
scpdep $newwar root $i /home/wsm
echo 'scp root@...stop'
done


备份脚本 backup.sh

#!/bin/bash
#dire="/home/wsm/bak"
#备份webapps
function backupWeb(){
echo 'BackUp Start....'
`\cp -R /home/wsm/webapps/WSMMeasure $dire`
cd $dire
rm -rf $dirdate
mv $dire/WSMMeasure $dirdate
echo 'BackUp End'
}

dirdate=`date +%Y%m%d`
echo '$dirdate'
dire=`awk -F '=' '{if($1=="bak")print $2}' profile`
 if [ -d "$dire" ]; then
 echo "bak文件夹存在"
 else
 mkdir -p $dire
 fi

backupWeb


安装脚本 deploy.sh

#!/bin/bash
#dire="/home/wsm/bak"
#备份webapps

#cp war到/home/wsm/webapps/WSMMeasure
function cpWarApps(){
echo 'cpwarApps Start...'
rm -rf /home/wsm/webapps/WSMMeasure/*
`\cp /home/wsm/$1  /home/wsm/webapps/WSMMeasure`
cd /home/wsm/webapps/WSMMeasure
jar -xvf *.war
echo 'cpwarApps End...'
}

#拷贝配置文件
function RepConf(){
#/home/wsm/webapps/WSMMeasure/WEB-INF/classes
#$dire/$dirdate/WEB-INF/classes
dirdate=`date +%Y%m%d`
 echo 'RepConf Start...'
`\cp -R $dire/$dirdate/WEB-INF/classes/spring /home/wsm/webapps/WSMMeasure/WEB-INF/classes`
`\cp -R $dire/$dirdate/WEB-INF/classes/hbase /home/wsm/webapps/WSMMeasure/WEB-INF/classes`
`\cp -R $dire/$dirdate/WEB-INF/classes/dubbo /home/wsm/webapps/WSMMeasure/WEB-INF/classes`
`\cp  $dire/$dirdate/WEB-INF/classes/xmpp.properties /home/wsm/webapps/WSMMeasure/WEB-INF/classes`
`\cp  $dire/$dirdate/WEB-INF/classes/quertz.properties /home/wsm/webapps/WSMMeasure/WEB-INF/classes`
`\cp  $dire/$dirdate/WEB-INF/classes/file.properties /home/wsm/webapps/WSMMeasure/WEB-INF/classes`
`\cp  $dire/$dirdate/WEB-INF/classes/const.properties /home/wsm/webapps/WSMMeasure/WEB-INF/classes`
`\cp  $dire/$dirdate/WEB-INF/classes/jdbc.properties /home/wsm/webapps/WSMMeasure/WEB-INF/classes`
  echo 'RepConf End...'<span style="white-space:pre">	</span>
}

#停止tomcat
function killTomcat(){
ps -ef | grep "/home/wsm/bin/tomcat" | grep -v grep | awk '{print $2}' | xargs kill -9
echo "killd tomcat "
}

function startTomcat(){
ps -ef | grep "/home/wsm/bin/tomcat" | grep -v grep | awk '{print $2}' | xargs kill -9
cd /home/wsm/bin
 ./startup.sh
 echo "start tomcat end"
}

dire=`awk -F '=' '{if($1=="bak")print $2}' profile`
newwar=`awk -F '=' '{if($1=="newwar")print $2}' profile`
backupWeb
cpWarApps $newwar
RepConf
killTomcat
startTomcat

#LocatIP=ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
#STATUS_CODE=`curl -o /dev/null -s -m 13 --connect-timeout 20 -w %{http_code} $LocatIP:8080/WSMMeasure/str/report/performancereport`

远程执行 rangerun.sh

将脚本scp到目标服务器通过ssh去执行脚本

#!/bin/bash

#ssh登陆远程执行脚本
#ssh root@host cd /home/wsm ./deploy.sh
#ssh  root@192.168.68.29 "cd /home/wsm && ls"
rangback(){
ssh root@$1 "cd /home/wsm && ./backup.sh"
}
rangdeploy(){
ssh root@$1 "cd /home/wsm && ./deploy.sh"
}
#arry ="192.168.68.29 192.168.10.147"

host=`awk -F '=' '{if($1=="arry")print $2}' profile`
for i in $host
do 
echo 'ssh root@-备份开始...'$i
rangback $i
echo 'ssh root@-备份结束...stop'$i
echo '开始安装...'$i
rangdeploy $i
echo '结束安装...'$i
done
</pre><pre code_snippet_id="507753" snippet_file_name="blog_20141104_4_9361903" name="code" class="java">回滚脚本 rollback.sh
<pre name="code" class="java">#!/bin/bash
#回滚1停掉tomcat 2删除webapp内容 3bak中的备份拷贝到webapp下 4 启动tomcat

#停止tomcat
function killTomcat(){
ps -ef | grep "/home/wsm/bin/tomcat" | grep -v grep | awk '{print $2}' | xargs kill -9
}

function startTomcat(){
ps -ef | grep "/home/wsm/bin/tomcat" | grep -v grep | awk '{print $2}' | xargs kill -9
cd /home/wsm/bin
 ./startup.sh
}

function rollback(){
echo 'Start rollback....'
#`\cp -R /home/wsm/webapps/WSMMeasure $dire`
rm -rf /home/wsm/webapps/WSMMeasure/*
`\cp -R /home/wsm/bak/$dirdate/*  /home/wsm/webapps/WSMMeasure/ `
}

dirdate=`date +%Y%m%d`
killTomcat
rollback
startTomcat



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: