这篇文章将为大家详细讲解有关jenkins如何实现shell脚本化定时执行任务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。开发需求Socket连接的auction拍卖jar包服务更新重启前半小时切走Ng
这篇文章将为大家详细讲解有关jenkins如何实现shell脚本化定时执行任务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
开发需求Socket连接的auction拍卖jar包服务更新重启前半小时切走Nginx的访问请求。
socket发起请求之后不需要nginx执行交互可以断开了,但是socket这个任务在auction拍卖任务没结束前重启auction就会出问题。
解决访问是jenkins构建好之后将jar远程推送到生产服务器,提前退出后台执行服务器远程脚本,脚本通过ngnx提前切走nginx代理auction sleep 1800s,半小时后执行更新重启。
指定构建目录获取同级依赖
#!/bin/bash # 脚本中只要出现执行不是true的语句,就退出不再往下执行set -e sed -i 's/server 192.168.0.31:8090/#server 192.168.0.31:8090/g' /home/nginx.proxy/conf/nginx.conf/home/nginx.proxy/sbin/nginx -s reloadsleep 1800s # 导入环境变量export jar_PATH=/data/WEBexport APP_PATH=/home/auction# 判断老的进程是否存在,若存在就杀掉killjar(){ pid=`ps -ef|grep auction |grep java |awk '{print $2}'` echo "auction Id list :$pid" if [ "$pid" = "" ] then echo "no auction pid alive" else kill -9 $pid fi} # 调用函数killjar # 判断老的jar包是否存在,若存在就删除[ -f $APP_PATH/auction-1.0-SNAPSHOT.jar ] && \rm -rf $APP_PATH/auction-1.0-SNAPSHOT.jar # 更新最新的jar包if [ -f $jar_PATH/auction-1.0-SNAPSHOT.jar ]; then mv $jar_PATH/auction-1.0-SNAPSHOT.jar $APP_PATHfi # 重新启动cd $APP_PATH#nohup java -jar -Dspring.config.location=/home/auction/config/application.yml auction-1.0-SNAPSHOT.jar >/dev/null 2>&1&nohup java -jar auction-1.0-SNAPSHOT.jar >/dev/null 2>&1& # sleep 10秒, 等待java进程完成起来sleep 5s sed -i 's/#server 192.168.0.31:8090/server 192.168.0.31:8090/g' /home/nginx.proxy/conf/nginx.conf/home/nginx.proxy/sbin/nginx -s reload echo 'Start success!'
关于“jenkins如何实现shell脚本化定时执行任务”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
--结束END--
本文标题: jenkins如何实现shell脚本化定时执行任务
本文链接: https://lsjlt.com/news/307352.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0