zoukankan      html  css  js  c++  java
  • 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}
    "
    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>&1
        proce
        echo "项目重置成功!文件传输完成!(请登录${slaip}执行${sladir}下的schenglee.sh脚本)"
    }
    function proce(){
        i=0;
        str=""
        arr=("|" "/" "-" "\")
        while [ $i -le 100 ]
        do
        let index=i%4
        let indexcolor=i%8
        let color=30+indexcolor
        printf "e[0;$color;1m[%-100s][%d%%]%c
    " "$str" "$i" "${arr[$index]}"
        sleep 0.1
        let i++
        str+='='
        done
        printf "
    "
    }
    function mk_dir(){
        if [ -d "${backdir}" ];then
            run
        else
            mkdir ${backdir}
            run
        fi
    }
    function run(){
        ./bin/shutdown.sh
        proce
        cp webapps/${warname} backup/${warname}-${TODAY} && rm -rf webapps/${wardir}*
        cp ${warname} webapps/
        ./bin/startup.sh
        proce
    }
    function main(){
        mk_dir
        train
    }
    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 ]
        do
        let index=i%4
        let indexcolor=i%8
        let color=30+indexcolor
        printf "e[0;$color;1m[%-100s][%d%%]%c
    " "$str" "$i" "${arr[$index]}"
        sleep 0.1
        let i++
        str+='='
        done
        printf "
    "
    }
    function mk_dir(){
        if [ -d "${backdir}" ];then
            run
        else
            mkdir ${backdir}
            run
        fi
    }
    function run(){
        ./bin/shutdown.sh
        proce
        cp webapps/${warname} backup/${warname}-${TODAY} && rm -rf webapps/${wardir}*
        cp ${warname} webapps/
        ./bin/startup.sh
        proce
    }
    function main(){
        mk_dir
    }
    main
    

    用法

    先把scp.sh扔进tomcat的bin目录, 记得授权

    然后运行schenglee.sh脚本就行, 脚本自动关闭tomcat然后备份项目包, 再把新的包放进webapps下自动启动, 需要更新的项目包放在tomcat的目录下

  • 相关阅读:
    python set
    python中%d %2d %02d %-2d% %.2d的区别
    python dict(字典)
    python 300本电子书合集
    python tuple元组
    python end用法
    python 找出第二大值
    GPU大百科全书 第二章 凝固生命的光栅化
    GPU大百科全书 第一章:美女 方程与几何
    Notepad++中调试用心lua程序
  • 原文地址:https://www.cnblogs.com/chenglee/p/10341958.html
Copyright © 2011-2022 走看看