欢迎来到代码驿站!

Shell

当前位置:首页 > 脚本语言 > Shell

jenkins 实现shell脚本化定时执行任务的方法

时间:2022-03-05 09:51:07|栏目:Shell|点击:

1.开发需求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 reload
sleep 1800s
 
# 导入环境变量
export jar_PATH=/data/web
export 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_PATH
fi
 
# 重新启动
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!'

上一篇:shell 中小括号、中括号及大括号的区别解析

栏    目:Shell

下一篇:利用Shell 脚本解决DDOS攻击问题

本文标题:jenkins 实现shell脚本化定时执行任务的方法

本文地址:http://www.codeinn.net/misctech/195304.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有