您的位置:首页 > 其它

jenkins 自动发布脚本(publish.sh)

2017-07-05 00:00 501 查看
1. jenkins打包完成后,通过ssh将war上传到目标服务器,之后执行指定文件、传入参数

2. # touch /data/tomcat/jenkins/publish.sh

3. 增加如下内容:

#!/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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐