平常工作中使用到的一下shell脚本例子,赖得下次再写一遍,在这儿做一下笔记,方便下次用的时候优化。
直接在jenkins登录vm执行shell脚本例子如下:
#######################push 推送jar包
JAR_HOME=/home/xxxx
JOB_PRO=xxxx-abc-projecet
JAR=xxxx-abc-projecet-0.0.1.jar
SOURCE_PATH=/tmp
backtime=_`date +%Y%m%d-%H%M`_bak
#create dir
if [ ! -d ${JAR_HOME}/${JOB_PRO} ]; then
mkdir ${JAR_HOME}/${JOB_PRO}
fi
if [ ! -d ${JAR_HOME}/${JOB_PRO}/backup ]; then
mkdir ${JAR_HOME}/${JOB_PRO}/backup
fi
#bacup
[ -f ${JAR_HOME}/${JOB_PRO}/${JAR} ] && mv ${JAR_HOME}/${JOB_PRO}/${JAR} ${JAR_HOME}/${JOB_PRO}/backup/`expr $BUILD_NUMBER - 1`-${JAR}${backtime}
#move file
cp ${SOURCE_PATH}/${JAR} ${JAR_HOME}/${JOB_PRO}/${JAR}
#change home permission
chown xxxx:xxxx -R ${JAR_HOME}/${JOB_PRO}
#######################start 启动jar脚本
#!/bin/bash
start() {
source /etc/profile
JAR_PATH=/home/xxxx/xxxx-abc-projecet
JAR=xxxx-abc-projecet-0.0.1.jar
JAR_PRA="-Xms2048m -Xmx2048m -Xmn512m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC"
echo "正在启动$JAR"
su -l xxxx -c "nohup java -jar -Dspring.cloud.config.profile=dev ${JAR_PRA} $JAR_PATH/$JAR >/dev/null 2>&1 &"
sleep 10
echo "$JAR启动成功"
}
start
################stop 停止jar包脚本,有点粗暴
#!/bin/bash
stop() {
source /etc/profile
admin_home=/home/xxxx/xxxx-abc-projecet
JAR=xxxx-abc-projecet-0.0.1.jar
# kill 之前正在运行的进程
admin_pid=$(ps -ef |grep $JAR |grep -v grep | awk '{print $2}')
#停止admin服务
for temp1_pid in ${admin_pid}
do
kill -15 ${temp1_pid}
echo "kill $JOB_NAME进程:${temp1_pid}"
sleep 10
done
}
stop
网友评论