要求:
通过Jenkins的插件Publish Over SSH(版本1.24),实现打包发布到远程服务器上
注意事项:
1、Build Steps时:
构建选择 -- Send files or execute commands over SSH
利用该软件的远程登录功能,传输到服务器,进行服务重启
2、Transfer Set:
Transfer Set Source files:默认在当前工作空间的target目录下面
Remote directory:推送到远程服务器目录,默认(/root/target)
Exec command:登录系统后要执行的shell命令
Exec command通用脚本(war包版):
#!/bin/bash
export JAVA_HOME=/usr/local/java/jdk1.8
PROJECT_NAME='war包名字'
ROOTDIR='/root/target'
TOMCAT_HOME='/lvdisk/xxx/tomcat-base'
echo "init-PROJECT_NAME:$PROJECT_NAME"
echo "init-ROOTDIR:$ROOTDIR"
echo "init-TOMCAT_HOME:$TOMCAT_HOME"
echo 'shoutdown tomcat'
sh ${TOMCAT_HOME}/bin/shutdown.sh
PID=`ps -ef|grep java|grep ${TOMCAT_HOME}/ |grep -v grep|awk 'NR==1{print $2}'`
echo "get this PID:$PID"
for id in $PID
do
kill -9 $id
echo "killed PID: $id"
done
sleep 3s
echo 'copy oldwar to datetime'
BAK_FILE=`date +%Y%m%d%H%M`
jarFile=${TOMCAT_HOME}/ROOT.war
if [ -f "$jarFile" ]; then
mv $jarFile $jarFile$BAK_FILE
fi
echo 'rm -rf ROOT'
rm -rf ${TOMCAT_HOME}/webapps/ROOT
echo 'rm -rf ROOT.war'
rm -rf ${TOMCAT_HOME}/webapps/ROOT.war
echo 'mv new war to tomcat'
mv ${ROOTDIR}/${PROJECT_NAME}.war ${TOMCAT_HOME}/webapps/ROOT.war
echo 'rm -rf ROOTDIR'
rm -rf ${ROOTDIR}
export BUILD_ID=dontKillMe
echo 'start tomcat'
sh ${TOMCAT_HOME}/bin/startup.sh
Exec command通用脚本(jar包版):
#!/bin/bash
#删除历史数据
rm ‐rf xxoo
appname=$1
#获取传入的参数
echo "arg:$1"
#获取正在运行的jar包pid
pid=`ps ‐ef | grep $1 | grep 'java ‐jar' | awk '{printf $2}'`
echo $pid
#如果pid为空,提示一下,否则,执行kill命令
if [ ‐z $pid ];
#使用‐z 做空值判断
then
echo "$appname not started"
else
kill ‐9 $pid
echo "$appname stoping...."
check=`ps ‐ef | grep ‐w $pid | grep java`
if [ ‐z $check ];
then
echo "$appname pid:$pid is stop"
else
echo "$appname stop failed"
fi
fi
脚本执行打印开关: