zoukankan      html  css  js  c++  java
  • shell实现自动部署两台tomcat项目+备份

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

    主机

    #!/bin/bash
    TODAY=$(date -d 'today' +%Y-%m-%d-%S)
    MIP="192.168.180.24"
    LIP="192.168.180.25"
    user="mcdadm"
    pathN="/home/mcdadm/apache-tomcat-9.0.14"
    
    echo "即将实现自动部署操作,脚本运行后请稍等几秒,部署成功会自动提醒"
    
    function run(){
        ./stop.sh >/dev/null 2>&1
        sleep 2
        cp webapps/bskm.war backup/bskm.war-${TODAY}
        rm -rf webapps/bskm*
        sleep 2
        cp bskm.war webapps/
        ./start.sh >/dev/null 2>&1
        echo "主机${MIP}部署完成!"
        read -p "是否观察动态日志? [y/n] " input
        case $input in
            [yY]*)
                echo ""
                tail -f logs/catalina.out
            ;;
            [nN]*)
                #exit
            ;;
            *)
            ;;
        esac
    }
    function ifM(){
        if [ -d "backup" ];then
            run
        else
            mkdir backup
            run
        fi
    }
    function slaveLin(){
    echo -e "33[43;35m 请输入${LIP}副机登录密码以实现部署包传输 33[0m"
    scp bskm.war ${user}@${LIP}:${pathN}/
    echo -e "33[43;35m 请输入${LIP}副机登录密码以实现自动部署 33[0m"
    ssh -Tq ${user}@${LIP} << EOF
    cd ${pathN}
    ./schenglee.sh
    EOF
        echo "副机${LIP}部署完成!"
    }
    function main(){
        ifM
        slaveLin
    }
    main
    

    副机

    #!/bin/bash
    TODAY=$(date -d 'today' +%Y-%m-%d-%S)
    pathc="/home/mcdadm/apache-tomcat-9.0.14"
    echo "即将实现自动部署操作,脚本运行后请稍等几秒,部署成功会自动提醒"
    
    function run(){
        sh ${pathc}/stop.sh>/dev/null 2>&1
        sleep 2
        cp ${pathc}/webapps/bskm.war ${pathc}/backup/bskm.war-${TODAY}
        rm -rf ${pathc}/webapps/bskm*
        sleep 2
        cp ${pathc}/bskm.war ${pathc}/webapps/
        sh ${pathc}/start.sh>/dev/null 2>&1
        echo "部署完成"
        read -p "是否观察动态日志? [y/n] " input
        case $input in
            [yY]*)
                echo ""
                tail -f logs/catalina.out
            ;;
            [nN]*)
                exit
            ;;
            *)
            ;;
        esac
    }
    function ifM(){
        if [ -d "${pathc}/backup" ];then
            run
        else
            mkdir ${pathc}/backup
            run
        fi
    }
    function main(){
        ifM
    }
    main
    

    副机脚本命名为schenglee.sh

  • 相关阅读:
    全栈工程师学习Linux技术的忠告
    实战CentOS系统部署Hadoop集群服务
    如何安装最新的 XFCE 桌面?
    scrapy爬虫框架(二)
    scrapy爬虫框架(一)
    数据结构与算法(二)
    IDEA 常用快捷键
    数据结构与算法(一)
    es6之模板字符串
    es6之箭头函数
  • 原文地址:https://www.cnblogs.com/chenglee/p/10276975.html
Copyright © 2011-2022 走看看