Shell 文字 顶替tomcat星团war包裹
执行前server造成免费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到目标server通过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
版权声明:本文博主原创文章。博客,未经同意不得转载。
Shell 文字 顶替tomcat星团war包裹的更多相关文章
- Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包
Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...
- springboot+vue前后端分离,nginx代理配置 tomcat 部署war包详细配置
1.做一个小系统,使用了springboot+vue 基础框架参考这哥们的,直接拿过来用,链接https://github.com/smallsnail-wh/interest 前期的开发环境搭建就不 ...
- Docker容器Tomcat部署war包
在docker容器中使用tomcat部署war包主要包括四个步骤,创建tomcat容器.上传war包到容器.重启容器.访问应用. 1.创建tomcat容器 使用docker run -d --nam ...
- shell脚本关闭tomcat
使用shell脚本快速关闭tomcat,就是获取tomcat进程后,一起kill掉: #!/bin/sh #kill tomcat pid name=tomcat-emall pidlist=`ps ...
- idea Tomcat 部署 war和war exploded的区别
idea Tomcat 部署 war和war exploded的区别 学习了:https://blog.csdn.net/linjpg/article/details/73322881 explode ...
- tomcat部署war和war exploded区别和intellij idea部署项目的位置
tomcat部署war和war exploded区别和intellij idea部署项目的位置 来自https://blog.csdn.net/u013041642/article/details/7 ...
- 记录centos7下tomcat部署war包过程
记录centos7下tomcat部署war包过程 1.官网下载tomcat安装包.gz结尾的 2.上传到/usr/local/ ,并解压到tomcat目录下 3.进入tomcat/bin目录,运行./ ...
- Tomcat 后台war部署上传shell
tomcat的后台登录的两个目录为: /admin /manager/html 如果版本过高,只有采用弱密码的方式进后台: 有些tomcat采用默认的用户名和密码(用户名:admin,密码:空): 或 ...
- shell脚本切割tomcat的日志文件
鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢 ...
随机推荐
- 内存泄露检測及cvClone造成的泄露
调了几个小时,到最后发现内存泄露的原因是opencv的cvClone函数,採用cvCopy函数后,问题解决. vs2010使用vld进行内存泄露检測 (1) 下载vld工具 (2) 将D:\Progr ...
- uvalive4327(单调队列优化)
这题我有闪过是用单调队列优化的想法,也想过有左右两边各烧一遍. 但是不敢确定,搜了题解,发现真的是用单调队列,然后写了好久,调了好久下标应该怎么变化才过的. dp[i][j] 表示走到第i行,第j个竖 ...
- oracle spfile和pfile文件(转)
--======================== -->Oracle 参数文件 --======================== /* 参数文件(10g中的参数文件) 主要用来记录数据库 ...
- libyuv编
下载代码(墙): git clone http://git.chromium.org/external/libyuv.git 用 make 编译(linux.mingw.cygwin): mak ...
- ACE 主动对象模式的按部就班的实现方法
ACE的主动对象模式的实现 对分布式系统设计来说,ACE提供的主动对象模式是让我们在系统框架构建的时候,回归到传统的单线程编程思维.你可能要问,既然有主动对象,那必然有被动对象,没有错,确实有被动对象 ...
- Linux date -s(转)
修改linux的时间可以使用date指令 修改日期: 时间设定成2009年5月10日的命令如下: #date -s 05/10/2009 修改时间: 将系统时间设定成上午10点18分0秒的命令如下. ...
- IOT(Index Organized Table)
我们知道一般的表都以堆(heap)的形式来组织的,这是无序的组织方式.Oracle还提供了一种有序的表,它就是索引组织表,简称IOT表.IOT表上必须要有主键,而IOT表本身不对应segment,表里 ...
- hdu1372 dfs搜索之国际象棋的马
原题地址 题意 一个8x8的国际象棋棋盘,你有一个棋子"马".算出棋子"马"从某一格到还有一格子的最少步数. 与普通dfs不同的是,你能走的路线不是上下左右,四 ...
- oralce 获取自定义主键编码,有并发问题
F_GET_SEQUENCE,功能函数,当多个服务同时调用此函数,可能产生并发问题,待解决,加主键. CREATE OR REPLACE Function f_Get_Sequence(As_Comp ...
- 跟我extjs5(03--在项目过程中加载文件)
跟我extjs5(03--在项目过程中加载文件) 上一节中用sencha工具自己主动创建了一个项目.而且能够在浏览器中查看. 如今我们来看看js类载入过程. 例如以下图所看到的: watermark/ ...