#首先部署jdk,apache-tomcat,git,maven环境jdk安装地址:https://www.cnblogs.com/mrfo/p/10223277.htmlapache-tomcat安装地址:wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.tar.gzyum -y install git yum -y install unzipmaven安装地址:wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz#创建一个备份目录mkdir -p /data/backup 配置jdk以及maven的环境变量cat /etc/profileexport JAVA_HOME=/usr/local/jdk1.8export PATH=$PATH:$JAVA_HOME/bin:/usr/local/maven3.6/bin #!/bin/bash#获取当前的时间DATE=$(date +%F_%T)#tomcat名称,也就是/usr/local/tomcat,这里的tomcat取名为tomcat(实际环境可能有多个tomcat实例,根据tomcat的唯一名称来进行传参)TOMCAT_NAME=$1#tomcat安装目录TOMCAT_DIR=/usr/local/$TOMCAT_NAME#tomcat网站根目录ROOT=$TOMCAT_DIR/webapps/ROOT#数据备份到/data/backup这个目录下BACKUP_DIR=/data/backup#临时去拉代码工作的目录WORK_DIR=/tmp#项目名称,github指定的名称PROJECT_NAME=tomcat-java-demo# 拉取代码#切到临时目录下cd $WORK_DIR#判断当前下有没有项目名称目录,那么没有就会去github克隆项目到当前目录if [ ! -d $PROJECT_NAME ]; then git clone https://github.com/lizhenliang/tomcat-java-demo#切到项目名称目录 cd $PROJECT_NAMEelse cd $PROJECT_NAME#否则有的话,就去增量拉取 git pullfi# 构建mvn clean package -Dmaven.test.skip=true#判断当前maven是否构建成功,如果上一条命令执行失败,也就是非0,那么就退出当前脚本if [ $? -ne 0 ]; then echo "maven build failure!" exit 1fi# 部署#获取tomcat的pid egrep取反TOMCAT_PID=$(ps -ef |grep "$TOMCAT_NAME" |egrep -v "grep|$$" |awk 'NR==1{print $2}')#如果tomcat的pid不为空,也就是tomcat是启动的,那么就(kill)杀死它[ -n "$TOMCAT_PID" ] && kill -9 $TOMCAT_PID#判断tomcat的网站根目录ROOT有没有在,有的话移动到备份目录/data/backup这个目录下,起名格式为(tomcat名称加ROOT加时间)[ -d $ROOT ] && mv $ROOT $BACKUP_DIR/${TOMCAT_NAME}_ROOT$DATE#通过unzip命令解压临时目录/tmp下的项目名称目录下的target目录下的war包 到网站根目录unzip $WORK_DIR/$PROJECT_NAME/target/*.war -d $ROOT#最后启动tomcat$TOMCAT_DIR/bin/startup.sh#执行脚本#./15.sh tomcat 访问:#tomcat默认端口8080http://192.168.1.2:8080