shell实现自动部署两台tomcat项目Ⅱ
本次分为3个脚本, scp.sh放进第一台机器(负责传输文件), schenglee.sh放进第一台机器(自动部署), schenglee2.sh放进第二台机器(自动部署)
环境
tomcat1: 192.168.137.176
tomcat2: 192.168.137.177
脚本
scp.sh
#!/usr/bin/expect #************************************************************************* # > File Name: expect.sh # > Author: chenglee # > Main : chengkenlee@sina.com # > Blog : http://www.cnblogs.com/chenglee/ # > Created Time : 2019年01月30日 星期三 18时16分56秒 #************************************************************************* set user root set pass lizhenghua set dir /home/mcdadm/apache-tomcat-9.0.14 set ip 192.168.137.177 set filen [lrange $argv 0 0]spawn scp ${filen} ${user}@${ip}:${dir} expect "${user}@${ip}'s password:" send "${pass}\r" interact
schenglee.sh
#!/bin/bash TODAY=$(date -d 'today' +%Y-%m-%d-%S) warname="bskm.txt" wardir=`echo $warname | awk -F '.' '{print$1}'` backdir="backup" slaip=`cat bin/scp.sh | grep "192" | awk -F ' ' '{print$3}'` sladir=`pwd`function train(){echo "准备把${warname}文件传输到${slaip}"./bin/scp.sh ${warname} > /dev/null 2>&1proceecho "项目重置成功!文件传输完成!(请登录${slaip}执行${sladir}下的schenglee.sh脚本)" } function proce(){i=0;str=""arr=("|" "/" "-" "\\")while [ $i -le 100 ]dolet index=i%4let indexcolor=i%8let color=30+indexcolorprintf "\e[0;$color;1m[%-100s][%d%%]%c\r" "$str" "$i" "${arr[$index]}"sleep 0.1let i++str+='='doneprintf "\n" } function mk_dir(){if [ -d "${backdir}" ];thenrunelsemkdir ${backdir}runfi } function run(){./bin/shutdown.shprocecp webapps/${warname} backup/${warname}-${TODAY} && rm -rf webapps/${wardir}*cp ${warname} webapps/./bin/startup.shproce } function main(){mk_dirtrain } main
schenglee2.sh
#!/bin/bash TODAY=$(date -d 'today' +%Y-%m-%d-%S) warname="bskm.txt" wardir=`echo $warname | awk -F '.' '{print$1}'` backdir="backup"function proce(){i=0;str=""arr=("|" "/" "-" "\\")while [ $i -le 100 ]dolet index=i%4let indexcolor=i%8let color=30+indexcolorprintf "\e[0;$color;1m[%-100s][%d%%]%c\r" "$str" "$i" "${arr[$index]}"sleep 0.1let i++str+='='doneprintf "\n" } function mk_dir(){if [ -d "${backdir}" ];thenrunelsemkdir ${backdir}runfi } function run(){./bin/shutdown.shprocecp webapps/${warname} backup/${warname}-${TODAY} && rm -rf webapps/${wardir}*cp ${warname} webapps/./bin/startup.shproce } function main(){mk_dir } main
用法
先把scp.sh扔进tomcat的bin目录, 记得授权
然后运行schenglee.sh脚本就行, 脚本自动关闭tomcat然后备份项目包, 再把新的包放进webapps下自动启动, 需要更新的项目包放在tomcat的目录下
转载于:https://www.cnblogs.com/chenglee/p/10341958.html
shell实现自动部署两台tomcat项目Ⅱ相关推荐
- linux系统中同一台服务器部署两个tomcat
参考资料:https://www.cnblogs.com/liulinghua90/p/9329031.html 里面描述十分详细,一定要去看这位大佬的资料!! 以下是我自己实践整理出来的, ...
- windows服务器下部署多台tomcat
2019独角兽企业重金招聘Python工程师标准>>> 1.首先部署好一个以及jdk环境 参考http://jingyan.baidu.com/article/03b2f78c464 ...
- π-Disk派盘——能自动同步两台电脑的云盘
π-Disk派盘®是一款面向个人和企业的本地云存储解决方案. π-Disk派盘® – 数字第二大脑服务平台 它利用了本地硬盘的存储容量,通过"云化"的方式,可以将本地硬盘变成云存储 ...
- 单体项目部署多台机定时任务数据插入重复问题
解决多台机同时插入造成数据重复 个人负责了一个单体SpringMVC+Quartz定时任务框架的项目,该项目部署两台机,属于低数据量低并发项目,项目原本并没有做集群配置,之前部署到线上没出现问题,直到 ...
- java 实现自动生成部署文档_jenkins的部署、实现自动拉取gitlab仓库代码、实现项目中代码自动部署以及项目关联触发......
jenkins主机内存和gitlab主机内存最好配置4G及以上,防止各自的web端打不开 1.配置JDK环境 1)jdk解压到此目录 [root@localhost src]# pwd /usr/lo ...
- DevOps - Spring Boot自动部署到WebLogic
前言 想想,如果Spring Boot的项目在本地IDEA可以直接通过内嵌tomcat的jar运行,而只要往GitHub上提交代码,就能自动帮你打包成war包部署在项目组的WebLogic服务器上,该 ...
- 汤姆猫(Tomcat)概述+部署(nginx+tomcat)+优化
Tomcat 一.Tomcat概述与请求过程示意图 二.Tomcat服务部署 2.1 万恶防火墙+上传Tomcat所需软件包 2.2 安装JDL并设置JDK的环境变量 2.3 安装启动Tomcat并从 ...
- 实验详解——Cobbler自动部署最小化安装
实验详解--Cobbler自动部署最小化安装 一.实验:自动部署 二.Cobbler自动装机服务搭建步骤 1.导入epel源并加载在线安装源 2.安装Cobbler以及其相关服务软件包 3.修改cob ...
- eclipse修改java热部署免重启tomcat在Host标签下增加Context直接将docBase指定为项目的WebContent路径
为了避免每次修改java文件eclipse都自动重启耗时较长,研究了网上方法,在eclipse+tomcat7本机实践了下可行. 原理:将eclipse工程的WebContent直接作为部署目录,你的 ...
最新文章
- context:property-placeholder标签实现参数剥离
- Java Review - 并发编程_LinkedBlockingQueue原理源码剖析
- QT实现音乐的大小可视化为动画条
- 论文浅尝 | 通过文本到文本神经问题生成的机器理解
- 深入浅出requireJS-1
- Java中的生产消费者问题
- Android--SharedPreferences数据存储方案
- 一个牛人给JAVA初学者的建议【转】
- 解决缓存和数据库双写数据一致性问题
- strut2下载文件
- so库方法的调用过程
- python的拼音_Python返回汉字的汉语拼音(原创) | 学步园
- 制作咖啡店的banner
- 什么是 Ubuntu?
- SQL service的事务提交和回滚
- mysql查询第二个字母为a_MSSQL_关于SQL Server查询语句的使用,一.查询第二个字母是t或者a的 - phpStudy...
- 为什么要使用去耦电容?去耦电容的工作原理。
- 【系统故障】解决动态库路径错误导致ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found 的问题
- 178Echarts - 主题河流图(ThemeRiver)
- 旧电脑变废为宝成为nas
热门文章
- python如何编程日期_python编程开发之日期操作实例分析
- 应届毕业生面试软件测试工程师时应注意什么?
- pythonmkdir语法错误_Python:windows创建文件夹时出错操作系统.mkdir使用方括号
- 模态框分页java代码_ajax分页效果(bootstrap模态框)
- 【三次握手、四次挥手流程】及【长短链接区别】
- 21天Jmeter打卡合集之从入门到精通
- 入职抖音之后,我变强了,但是营养也有点跟不上了...
- 资深和新手的100大 Selenium面试问答
- 显卡报错测试软件,显卡识别软件GPU-Z更新至2.3.0,彻底揭开RX Vega面纱
- php7 xmlreader,PHP扩展之XML操作(四)——XMLReader