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使用文件切割成功的话,可以留下使用方式,先谢 ...
随机推荐
- discuz 插件开发 新手入门
作为一个新手,目前也是刚刚玩转discuz的插件功能,好东西不敢独享,就拿出来大家一起分享入门的过程.现在网上很多关于discuz的插件教程都是很简单的教程,原因可能是这个东西是商业化的东西,本着分享 ...
- linux下无ifconfig命令
你不是用root用户运行此命令的吧?这样试试看:$ su - password: 输入root用户口令# ifconfig 还是没有的 用whereis命令找找看:# whereis ifco ...
- 关于QTP
关于QTP,我也才接触,只是上来记录一下安装过程,免得以后忘记,又要查一堆资料. 简单介绍一下QTP: QTP的基本功能包括2个部分:一部分是提供给初级用户使用的关键字视图:另一部分是提供给熟悉VBS ...
- HiPAC高性能规则匹配算法之查找过程
收到一封邮件,有位朋友认为我误解了nf-HiPAC.如此的一个高性能算法怎能被什么传统的hash,tree之类的胁迫.是啊.HiPAC是一个非常猛的算法.文档也比較少,这就更加添加了其神奇感,可是这决 ...
- CentOS下tmux安装与使用
tmux介绍: tmux它是BSDScreen替代品,相对于Screen,它更加先进:支持屏幕切分,并且具备丰富的命令行參数,使其能够灵活.动态的进行各种布局和操作.它能够做到一条命令就启动起来(强大 ...
- JS判断用户连续输入
方案1 // // $('#element').donetyping(callback[, timeout=1000]) // Fires callback when a user has finis ...
- 探索Android该Parcel机制(上)
一.先从Serialize说起 我们都知道JAVA中的Serialize机制,译成串行化.序列化……,其作用是能将数据对象存入字节流其中,在须要时又一次生成对象. 主要应用是利用外部存储设备保存对象状 ...
- oracle在imp订单具体解释
oracle在imp订单具体解释 Oracle导入实用程序(Import utility)同意从数据库中提取数据,和写入数据到一个操作系统文件项目.imp所用的基本格式:imp[username[/p ...
- SICP-2锻炼.34
[锻炼2.34] 为x给定值,找到一个多项式x的值,它也可以被形式化为累积. 下多项式的值: an*x^n + an-1*x^n-1 + .... + a1*x + a0 採用著名的Horner规则, ...
- JDK5什么是新的堵塞队列线程(四)
一. 堵塞队列与普通队列: 队列是一种主要的数据类型,其典型特征是先进先出. 堵塞队列和普通队列的差别在于: 当队列为空时.从队列中获取元素的线程会被堵塞.直到其它的线程往空的队列里插入新的元素: 当 ...