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

原文地址:https://www.cnblogs.com/chenglee/p/10276975.html