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

时间:2023-03-09 22:04:20
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}\r"
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\r" "$str" "$i" "${arr[$index]}"
sleep 0.1
let i++
str+='='
done
printf "\n"
}
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\r" "$str" "$i" "${arr[$index]}"
sleep 0.1
let i++
str+='='
done
printf "\n"
}
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目录, 记得授权

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

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

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