1. jenkins打包完成後,經過ssh將war上傳到目標服務器,以後執行指定文件、傳入參數python
2. # touch /data/tomcat/jenkins/publish.shweb
3. 增長以下內容:tomcat
#!/bin/bash #defined source /etc/profile TOMCAT_HOME="/root/jenkins/tomcat" TOMCAT_PORT=8088 PROJECT="$1" #param validate if [ $# -lt 1 ]; then echo "you must use like this : ./publish.sh <projectname> <tomcat home dir>:<tomcat port>" exit fi if [ "$2" == "" ]; then echo "you must use like this : ./publish.sh <projectname> <tomcat home dir>:<tomcat port>" exit fi #sleep 5 OLD_IFS=$IFS IFS=$',' arr=($2) for x in ${arr[@]}; do IFS=$':' p=($x) TOMCAT_HOME=${p[0]} TOMCAT_PORT=${p[1]} #check tomcat process tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT` echo "current :" $tomcat_pid #shutdown tomcat kill -9 "$tomcat_pid" echo "tomcat shutdown" while [ -n "$tomcat_pid" ] do sleep 5 tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT` kill -9 "$tomcat_pid" echo "scan tomcat pid :" $tomcat_pid done #bak project #BAK_DIR=./bak/$PROJECT/`date +%Y%m%d` #mkdir -p "$BAK_DIR" #cp "$TOMCAT_HOME"/webapps/$PROJECT.war "$BAK_DIR"/"$PROJECT"_`date +%H%M%S`.war #remove tmp #rm -rf /save/$PROJECT*.war basepath=$(cd `dirname $0`; pwd) #publish project echo "scan no tomcat pid,$PROJECT publishing" rm -rf "$TOMCAT_HOME"/webapps/ROOT* cp "$basepath"/$PROJECT*.war "$TOMCAT_HOME"/webapps/ROOT.war #start tomcat "$TOMCAT_HOME"/bin/startup.sh echo "tomcat is starting,please try to access $PROJECT conslone url" done IFS=$OLD_IFS