就做个记录吧, 其实也没啥好说的.

主机

  1. #!/bin/bash
  2. TODAY=$(date -d 'today' +%Y-%m-%d-%S)
  3. MIP="192.168.180.24"
  4. LIP="192.168.180.25"
  5. user="mcdadm"
  6. pathN="/home/mcdadm/apache-tomcat-9.0.14"
  7.  
  8. echo "即将实现自动部署操作,脚本运行后请稍等几秒,部署成功会自动提醒"
  9.  
  10. function run(){
  11. ./stop.sh >/dev/null 2>&1
  12. sleep 2
  13. cp webapps/bskm.war backup/bskm.war-${TODAY}
  14. rm -rf webapps/bskm*
  15. sleep 2
  16. cp bskm.war webapps/
  17. ./start.sh >/dev/null 2>&1
  18. echo "主机${MIP}部署完成!"
  19. read -p "是否观察动态日志? [y/n] " input
  20. case $input in
  21. [yY]*)
  22. echo ""
  23. tail -f logs/catalina.out
  24. ;;
  25. [nN]*)
  26. #exit
  27. ;;
  28. *)
  29. ;;
  30. esac
  31. }
  32. function ifM(){
  33. if [ -d "backup" ];then
  34. run
  35. else
  36. mkdir backup
  37. run
  38. fi
  39. }
  40. function slaveLin(){
  41. echo -e "\033[43;35m 请输入${LIP}副机登录密码以实现部署包传输 \033[0m"
  42. scp bskm.war ${user}@${LIP}:${pathN}/
  43. echo -e "\033[43;35m 请输入${LIP}副机登录密码以实现自动部署 \033[0m"
  44. ssh -Tq ${user}@${LIP} << EOF
  45. cd ${pathN}
  46. ./schenglee.sh
  47. EOF
  48. echo "副机${LIP}部署完成!"
  49. }
  50. function main(){
  51. ifM
  52. slaveLin
  53. }
  54. main

副机

  1. #!/bin/bash
  2. TODAY=$(date -d 'today' +%Y-%m-%d-%S)
  3. pathc="/home/mcdadm/apache-tomcat-9.0.14"
  4. echo "即将实现自动部署操作,脚本运行后请稍等几秒,部署成功会自动提醒"
  5.  
  6. function run(){
  7. sh ${pathc}/stop.sh>/dev/null 2>&1
  8. sleep 2
  9. cp ${pathc}/webapps/bskm.war ${pathc}/backup/bskm.war-${TODAY}
  10. rm -rf ${pathc}/webapps/bskm*
  11. sleep 2
  12. cp ${pathc}/bskm.war ${pathc}/webapps/
  13. sh ${pathc}/start.sh>/dev/null 2>&1
  14. echo "部署完成"
  15. read -p "是否观察动态日志? [y/n] " input
  16. case $input in
  17. [yY]*)
  18. echo ""
  19. tail -f logs/catalina.out
  20. ;;
  21. [nN]*)
  22. exit
  23. ;;
  24. *)
  25. ;;
  26. esac
  27. }
  28. function ifM(){
  29. if [ -d "${pathc}/backup" ];then
  30. run
  31. else
  32. mkdir ${pathc}/backup
  33. run
  34. fi
  35. }
  36. function main(){
  37. ifM
  38. }
  39. main

副机脚本命名为schenglee.sh

shell实现自动部署两台tomcat项目+备份的更多相关文章

  1. shell实现自动部署两台tomcat项目Ⅱ

    本次分为3个脚本, scp.sh放进第一台机器(负责传输文件), schenglee.sh放进第一台机器(自动部署), schenglee2.sh放进第二台机器(自动部署) 环境 tomcat1: 1 ...

  2. 同一个服务器部署两个Tomcat并用Nginx实现反向代理

    需求场景:由于服务器只有80端口可供外网访问,但需要部署两台tomcat来运行两个不同的项目,所以选择了nginx做反向代理 一个upstream tomcat_server对应一个  locatio ...

  3. 如何在同一台服务器上部署两个tomcat

    因为测试的需要,有时我们必须在同一个服务器上部署两个tomcat,然后去做应用的部署,那么很多同学可能会觉得比较为难,找的资料也比较的不齐全,那么今天华华就来给大家讲讲如何部署2个tomcat,并能够 ...

  4. maven自动部署到远程tomcat教程

    使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配 ...

  5. Maven入门示例(3):自动部署至外部Tomcat

    Maven入门示例(3):自动部署至外部Tomcat 博客分类:  maven 2012原创   Maven入门示例(3):自动部署至外部Tomcat 上一篇,介绍了如何创建Maven项目以及如何在内 ...

  6. linux机器上部署多台Tomcat

    在Linux机器上部署多台Tomcat, 我部署的是Tomcat8,只需要一步,即避免端口号冲突. 在解压后的tomcat目录下,修改conf下server.xml. 修改shutdown端口: &l ...

  7. 一台服务器搭载两个tomcat项目

    之前下载的mysql  在官网是有 历史库的 如果现在一台机器上已经部署了一个tomcat服务,无论这个tomcat是否已经注册为服务了,或者没有注册windows服务,或者注册了,都没关系.都可以采 ...

  8. 在linux服务器上装svn版本管理,自动部署代码到web项目

    在linux服务器上装svn版本管理,自动部署代码到项目 1.安装svn服务器端  yum install subversion   从镜像下载安装svn服务器端 中间会提示是否ok,输入y,确认  ...

  9. 一台服务器部署多台tomcat

    如题,多个项目部署在一台服务器.减少容错性,觉得分开部署,这样一个tomcat挂了不会影响另一个项目.看配置和应用大小决定数量,一般四五个没问题,也有单台服务器部署8个tomcat稳定运行的. 下面记 ...

随机推荐

  1. 深入解密.NET(Tuple元祖)

    元组(Tuple)数学概念上是指包含特定元素与数列的数据结构,n-Tuple称为一个n元祖.比如拿数据表来类比,数据表的每一行就是一个元祖,每一列是元祖的一个属性. 它可以视为由于你不想大动干戈创建一 ...

  2. js中两个!!的理解

    在js中经常有两个!!出现,经常让人难以理解 (function () { var a = 10; var b = 20; function add(num1, num2) { var num1 = ...

  3. echarts实现全国地图

    1.首先我没有按需引入echarts,我是全局引入的,所以说在node_modules中有 这个china,你只需要在你的页面引入即可 但是按需引入echarts 的 项目中node_modules中 ...

  4. MySQL.配置MariaDB的字符集

    配置MariaDB的字符集 环境: 操作系统:CentOS Linux release 7.x mariadb安装及配置 yum install mariadb-server mariadb #安装 ...

  5. <7>Cocos Creator 节点 cc.Node

    1.简介 节点(cc.Node)是渲染的必要组成部分.所有需要在游戏场景中显示的内容都必须是节点或者依附于节点之上.节点负责控制显示内容的位置.大小.旋转.缩放.颜色等信息. 2.节点属性 1: na ...

  6. python ip代理

    import random import urllib.request from bs4 import BeautifulSoup import time url ='http://www.whati ...

  7. Spring Security实现RBAC权限管理

    Spring Security实现RBAC权限管理 一.简介 在企业应用中,认证和授权是非常重要的一部分内容,业界最出名的两个框架就是大名鼎鼎的 Shiro和Spring Security.由于Spr ...

  8. 数据模型Model(I)

    枚举.结构体和协议组成Model //定义一个协议 protocol BaseItemProtocal { var title: String { get set } //属性是可读可写的 var t ...

  9. 设计模式之Visitor(访问者)(转)

    Visitor定义 作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作. 在Java中,Visitor模式实际上是分离了collection结构中的 ...

  10. array_contains 分析函数使用演示

    Hive中的array_contains函数与SQL中的 in关键字 操作类似,用于判定 包含(array_contains)或不包含(!array_contains)关系.与 in不同的是array ...