1 手动上传jar包后部署
1.1 下载安装lrzsz
lrzsz是一个文件上传和下载的工具软件包,我们可以使用上传rz、下载sz命令。
1.2 上传jar包
我们可以输入命令 rz -y(rz 代表上传, -y 可以强制覆盖文件),会弹出一个文件选择框,我们可以鼠标选择jar包位置,确定即可,下次再上传的时候会直接弹出jar包窗口,当然下次用的时候也可以用tab键光标跳转选择,这就完全不用鼠标了,注意下面发送文件到ASCII不要打钩。
1.3 执行脚本
项目重启的脚本,写个start.sh 的脚本,注意脚本和jar包同级目录 , 如下:
#!/bin/sh
RESOURCE_NAME=resource-0.0.1-SNAPSHOT.jar
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'App is running.'
else
echo 'App is NOT running.'
fi
rm -f tpid
nohup java -jar ./$RESOURCE_NAME --spring.profiles.active=test >/dev/null 2>&1 &
echo $! > tpid
echo Start Success!
其中,‘>/dev/null 2>&1’将日志打到黑洞里面,不打印nohup日志。
1.4 脚本运行
cd /home (我是把jar包和脚本放在home下面)
chmod +x start.sh (第一次运行的时候获取一下超级管理员权限)
然后以后每次运行直接
./start.sh 即可
2 jekins自动化部署jar包
Jenkins自动化搭建测试环境参考:https://blog.csdn.net/mameng1988/article/details/82964777
这里主要关注的是下面的shell构建:
2.1 Command部分
#!/bin/bash
BUILD_ID=DONTKILLME
. /etc/profile
export PROJ_PATH=`pwd`
export JAR_PATH=/opt/application/ConfigServerSvn
cd /opt/application/ConfigServerSvn
./configServerStart.sh
其中,". /etc/profile “执行maven等配置;待部署的项目和重启项目的脚本在”/opt/application/ConfigServerSvn"目录下。
2.2 configServerStart.sh
#!/bin/sh
RESOURCE_NAME=config-server-svn-0.0.1-SNAPSHOT.jar
echo "starting install project!"
cd $PROJ_PATH/config-server-svn
mvn clean install
echo "install proiect finished!"
echo "Stopping config-server-svn"
cd $JAR_PATH
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'App is running.'
else
echo 'App is NOT running.'
fi
rm -rf $JAR_PATH/$RESOURCE_NAME
cp $PROJ_PATH/config-server-svn/target/$RESOURCE_NAME $JAR_PATH
rm -f tpid
nohup java -jar ./$RESOURCE_NAME >/dev/null 2>&1 &
echo $! > tpid
echo Start Success!
chmod +x configServerStart.sh (第一次运行的时候获取一下超级管理员权限)
都配置好之后,在jenkins页面中点击“build”,Jenkins输出了 Finished: SUCCESS!