脚本1:(这个脚本路径被我处理了一下,用的时候自己修改下;start.sh 无非就是个启动tomcat的脚本)
#!/bin/bash #deploy war to tomcat #by fencatn export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.3.7-0.el7_6.x86_64 TOMCAT_PID=`/usr/sbin/lsof -n -P -t -i :8081` TOMCAT_DIR="/usr/share/tomcat/webapps/" FILES="files.war" DES_DIR="/des_dir/" DES_URL="des_url" BAK_DIR="/data/backup/`date +%Y%m%d-%H%M`" [ -n "$TOMCAT_PID" ] && kill -9 $TOMCAT_PID cd $DES_DIR rm -rf $FILES mkdir -p $BAK_DIR;\cp -a $DES_DIR/* $BAK_DIR/ rm -rf $DES_DIR/* wget $DES_URL/$FILES ${JAVA_HOME}/bin/java -xvf $FILES #################### cd $TOMCAT_DIR;rm -rf work /bin/sh $TOMCAT_DIR/bin/start.sh sleep 10 tail -n 50 $TOMCAT_DIR/logs/nohup.out
脚本2:(定义newwarfil是为了把传上来的包重新命名成一个统一的名字,方便管理,你自己看着办)
#!/bin/bash #deploy war to tomcat #by fencatn warfile=files.war newwarfile=root.war pidlist=`ps -ef|grep tomcat|grep -v "grep"|awk '{print $2}'` DATE=$(date +%Y%m%d%H%M%S) function stop(){ if [ "$pidlist" == "" ] then echo "----tomcat已经关闭----" else echo "旧的tomcat 进程号 :$pidlist" kill -9 $pidlist echo "KILL $pidlist:" fi } stop #确认一下pid是否成功杀掉 pidlist2=`ps -ef|grep tomcat|grep -v "grep"|awk '{print $2}'` if [ "$pidlist2" == "" ] then echo "----关闭旧的tomcat成功----" else echo "----关闭旧的tomcat失败----" fi mv /usr/share/tomcat/webapps/$warfile /usr/local/project/$DATE.$warfile.bak rm -r -f /usr/share/tomcat/webapps/* sleep 3s cp -r /usr/local/project/$warfile /usr/share/tomcat/webapps/ mv /usr/share/tomcat/webapps/$warfile /usr/share/tomcat/webapps/$newwarfile /usr/sbin/tomcat start #最后确认一下新的pid pidlist3=`ps -ef|grep tomcat|grep -v "grep"|awk '{print $2}'` if [ "$pidlist3" == "" ] then echo "----启动新的tomcat失败----" else echo "----新的tomcat的进程号是:$pidlist3----" fi
脚本3:(先占个座)