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

  • 相关阅读:
    Web开发细节搜集
    excel设置单元格为文本
    网页QQ唤起
    .net提高文章
    代码重构学习
    js的undefined怎么判断
    微软.net一些类的源码
    FineMessBox的js依赖导致错误Uncaught ReferenceError: addEvent is not defined
    [译转]深入理解LayoutInflater.inflate()
    java 和 Android Base64加密
  • 原文地址:https://www.cnblogs.com/chenglee/p/10276975.html
Copyright © 2011-2022 走看看