jarlist.txt
cloud-registry-server-1.0.jar
spring-cloud-gray-server-1.1.0.jar
cloud-transaction-server-1.0.jar
cloud-api-group-1.0.jar
cloud-boot-admin-1.0.jar
cloud.sh 操作jarlist.txt里面所有 例:./cloud.sh stop
#!/usr/bin --login
# 启动基础服务
basedir=/opt/fhyj/
commond=$1
filename=$basedir/script/jarlist.txt
if [ ! -n "$1" ]
then
echo "请输入start|stop|remove命令!"
fi
if [ "$commond" = "start" ]
then
cat $filename | while read element
do
sh $basedir/script/start-jar.sh $basedir $element dev
done
fi
if [ "$commond" = "remove" ]
then
cat $filename | while read element
do
sh $basedir/script/remove-jar.sh $basedir $element
done
fi
if [ "$commond" = "stop" ]
then
cat $filename | while read element
do
sh $basedir/script/stop-jar.sh $element
done
fi
cloud-one.sh 操作单个jar 例如:./cloud-one.sh stop xxx.jar
#!/usr/bin --login
# 启动基础服务
basedir=/opt/fhyj/
commond=$1
jarname=$2
if [ ! -n "$1" ]
then
echo "请输入start|stop|remove命令!"
fi
if [ "$commond" = "start" ]
then
sh $basedir/script/start-jar.sh $basedir $jarname dev
fi
if [ "$commond" = "remove" ]
then
sh $basedir/script/remove-jar.sh $basedir $jarname
fi
if [ "$commond" = "stop" ]
then
sh $basedir/script/stop-jar.sh $jarname
fi
#!/bin/bash --login
jarname=$2
basedir=$1
active=$3
echo "正在启动:$1$2"
export JAVA_OPTS="-server -Xms128M -Xmx128M -Xmn36M -Xss256k -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=15 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=73 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/aupu/tmp/eureka.hprof -Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom "
ulimit -n 65535
pid=$(ps -ef|grep java |grep $jarname|awk '{print $2}')
if [ -n "$pid" ]; then
kill -9 $pid
fi
nohup java $JAVA_OPTS -jar $basedir/server/$jarname --spring.profiles.active=$active > $basedir/logs/$jarname.log 2>&1 &
#!/usr/bin/env bash
# 停止服务jar
jarname=$1
echo "正在停止:$1"
pid=$(ps -ef|grep java |grep $jarname|awk '{print $2}')
if [ -n "$pid" ]; then
kill -9 $pid
fi
#!/usr/bin/env bash
# 停止服务、删除jar
basedir=$1
jarname=$2
echo "正在删除:$1$2"
pid=$(ps -ef|grep java |grep $jarname|awk '{print $2}')
if [ -n "$pid" ]; then
kill -9 $pid
fi
rm -rf $basedir/server/$jarname
说明:如果没有特殊情况,只需要维护jarlist.txt里面需要发布的jar的名称即可
cloud.sh 和cloud-one.sh 配合使用即可实现jenkins单个和全部服务重启的需求
以上脚本配合jenkins job使用
在jenkins平台按照命名规则维护好各自的job后加入到指定标签内。
pipeline script
remote='192.168.1.51'
gitbranch='dev'
usercid='jenkinsUserId'
giturl='http://xx.git'
remotejarpath='/opt/fhyj/server/'
node {
def mvnHome
try {
stage('Preparation') {
git branch:gitbranch,credentialsId: usercid, url: giturl
mvnHome = tool 'maven'
}
stage('Build') {
// Run the maven build
if (isUnix()) {
sh "'${mvnHome}/bin/mvn' clean package -Dmaven.test.skip=true"
}
}
stage('publish') {
sh 'ssh root@'+remote+' /opt/fhyj/script/system-one.sh remove system-service-api-2.0.jar'
step([$class: 'ArtifactArchiver', artifacts: '**/target/*.jar', fingerprint: true])
sh 'scp '+'system-service/system-service-api/target/'+'system-service-api-2.0.jar'+' root@'+remote+':'+remotejarpath
sh 'ssh root@'+remote+' /opt/fhyj/script/system-one.sh start system-service-api-2.0.jar'
}
}catch (err) {
currentBuild.result = "FAILURE"
throw err
}
}