Jenkins sprongBoot项目自动化部署相关脚本
- 服务器相关脚本,将此脚本放到jar包同级目录
#!/bin/bash
source /etc/profile
BUILD_ID=dontKillMe
appName=`ls|grep .jar$`
if [ -z $appName ]
then
echo "Please check that this script and your jar-package is in the same directory!"
exit 0
fi
killForceFlag=$2
function start()
{
count=`ps -ef |grep java|grep $appName|wc -l`
if [ $count != 0 ];then
echo "Maybe $appName is running, please check it..."
else
echo "The $appName is starting..."
nohup java -jar $appName > /dev/null 2>&1 &
sleep 10s
today=`date +%Y-%m-%d`
tail -f /usr/local/app/push_houses/log/applog/${today}/${today}.log | sed '/启动成功$/q'
fi
}
function stop()
{
appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
if [ -z $appId ]
then
echo "Maybe $appName not running, please check it..."
else
echo -n "The $appName is stopping..."
if [ "$killForceFlag" == "-f" ]
then
echo "by force"
kill -9 $appId
else
echo
kill $appId
fi
fi
}
function status()
{
appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
if [ -z $appId ]
then
echo -e "\033[31m Not running \033[0m"
else
echo -e "\033[32m Running [$appId] \033[0m"
fi
}
function restart()
{
stop
for i in {3..1}
do
echo -n "$i "
sleep 1
done
echo 0
start
}
function usage()
{
echo "Usage: $0 {start|stop|restart|status|stop -f}"
echo "Example: $0 start"
exit 1
}
case $1 in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
status;;
*)
usage;;
esac
- jenkins内部配置脚本
jenkins 配置我们使用 maven 加 码云的配置方式 使用 Send files or execute commands over SSH 方式发送jar包到服务器并重启
echo "执行脚本开始"
cd /usr/local/app/push_houses
echo "停止服务器"
sh app.sh stop
sleep 60s
echo "启动服务器"
sh app.sh start
echo "执行脚本结束"
按照以下方式配置jenkins