需求:spring微服务应用启动较慢并且要求一个应用启完才能启第二个应用。

思路:加了个while true 死循环判断端口启动了才启下一个应用。

执行方式:/appupgrade/spring_cloud/pay.sh xxx

#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
BUCKUP_DIR=/fs01/backup/spring-cloud/pay/$(date +%Y%m%d%H%M)
PAYPRE_DIR=/fs01/spring-cloud/paypre
APPLY_DIR=/fs01/spring-cloud/pay/acc-apply
SETTLE_DIR=/fs01/spring-cloud/pay/acc-settle
FILE=$1
if [ ! -f ${APPLY_DIR}/${FILE} ];then
echo "/tmp1/${FILE} This directory does not exist.Please check it!"
exit 0
fi
echo "开始更新应用,请勿操作等待更新完毕!!"
ps aux|grep pay-front|grep -v grep |awk '{print $2}'|xargs kill -9
rm -fr ${PAYPRE_DIR}/app.pid
sleep 10
ps aux|grep acc-apply|grep -v grep |awk '{print $2}'|xargs kill -9
rm -fr ${APPLY_DIR}/app.pid
sleep 3
ps aux|grep acc-settle|grep -v grep |awk '{print $2}'|xargs kill -9
rm -fr ${SETTLE_DIR}/app.pid\/bin/cp /tmp1/$1 ${APPLY_DIR}
[ -z ${BUCKUP_DIR} ] || /bin/mkdir -p ${BUCKUP_DIR}
cd ${APPLY_DIR}
tar -cf ${BUCKUP_DIR}/apply.tar BOOT-INF/ META-INF/
cd ${SETTLE_DIR}
tar -cf ${BUCKUP_DIR}/settle.tar BOOT-INF/ META-INF/
#更新acc-apply
cd ${APPLY_DIR}/BOOT-INF/classes/
/bin/mv bootstrap.yml db.properties  paylink.properties ../
cd ${APPLY_DIR}
/usr/java/jdk1.8.0_111/bin/jar -xf ${APPLY_DIR}/${FILE}
cd ${APPLY_DIR}/BOOT-INF/classes/
\/bin/mv ../bootstrap.yml ../db.properties ../paylink.properties ./
/bin/chown -R tomcat8:tomcatg /fs01/spring-cloud/pay/acc-apply
cd /fs01/spring-cloud/pay/acc-apply/ && ./start.sh
sleep 3
while true
doss -lntp|grep 8761 >>/dev/nullif [ $? = 0 ];thenecho "acc-apply更新成功!!"break;fi
done
#更新acc-settle
\/bin/cp ${APPLY_DIR}/${FILE} ${SETTLE_DIR}
cd ${SETTLE_DIR}/BOOT-INF/classes/
/bin/mv bootstrap.yml db.properties paylink.properties ../
cd ${SETTLE_DIR}
/usr/java/jdk1.8.0_111/bin/jar -xf ${SETTLE_DIR}/${FILE}
cd ${SETTLE_DIR}/BOOT-INF/classes/
\/bin/mv ../bootstrap.yml ../db.properties ../paylink.properties ./
/bin/chown -R tomcat8:tomcatg /fs01/spring-cloud/pay/acc-settle
while true
doss -lntp|grep 8761 >>/dev/nullif [ $? = 0 ];then
cd /fs01/spring-cloud/pay/acc-settle/ && ./start.shbreak;fi
done
while true
doss -lntp|grep 8762 >>/dev/nullif [ $? = 0 ];thenecho "acc-settle更新成功!!"
cd /fs01/spring-cloud/paypre/ && ./start.shbreak;fi
done
while true
doss -lntp|grep 8763 >>/dev/nullif [ $? = 0 ];then
echo "全部更新完毕,请检查应用日志是否正常!!"break;fi
done
mv /tmp1/${FILE} /tmp1/${FILE}_$(date +%Y%m%d%H%M)

转载于:https://www.cnblogs.com/Dev0ps/p/9425016.html

while true 死循环判断端口按顺序启动应用相关推荐

  1. Python判断端口服务是否启动

    如果一个进程启动多个服务,就需要应用端口判断的方法判断服务是否正常.  def check_servers(self):logger.debug("Check honeypot server ...

  2. bat脚本监控tomcat并启动_Windows server利用批处理脚本判断端口启动tomcat的方法

    win server服务器上面的tomcat老是不定时挂掉, 于是利用定时操作脚本判断tomcat80端口是否在运行, 如果运行则放过, 如果down掉就启动tomcat,解决tomcat不定时挂掉导 ...

  3. SharedPreferences记住用户密码 态判断应用是否首次启动等

    一.Android SharedPreferences的简介 SharedPreferences是一种轻型的Android数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用 ...

  4. 怎么判断linux22端口是否通,在Linux环境下使用SSH判断端口是否通(示例代码)

    在Linux环境下使用SSH判断端口是否通 在windows/linux环境下,可以使用telnet判断端口状态,但有时候在Linux环境下没有telnet,所以可以使用ssh判断端口状态. 一.ss ...

  5. Android判断app是不是第一次启动

    判断APP是不是第一次启动 基本思路就是,在第一次启动APP的时候,在本地保存一个布尔数据进行记录.如果是第一次启动保存为true,然后进行判断,如果是true,则提示是第一次启动并且修改为false ...

  6. java中if中的true和false_java中if(true)这个判断语句啥意思?能举例说明呢? Java中if(bool...

    java中这句话的意思是会执行if里面的东西,例如: int abc;\t\tif(true) \t\t{\t\t\t abc=0;\t\t}\t\telse\t\t{\t\t\tabc=1;\t\t ...

  7. linux上测试ssh是否通,在Linux环境下使用SSH判断端口是否通

    在Linux环境下使用SSH判断端口是否通 在windows/linux环境下,可以使用telnet判断端口状态,但有时候在Linux环境下没有telnet,所以可以使用ssh判断端口状态. 一.ss ...

  8. linux下测试端口 ssh,在Linux环境下使用SSH判断端口是否通

    在Linux环境下使用SSH判断端口是否通 在windows/linux环境下,可以使用telnet判断端口状态,但有时候在Linux环境下没有telnet,所以可以使用ssh判断端口状态. 一.ss ...

  9. 怎么判断linux22端口是否通,判断端口通不通的几种方法

    通常使用"telnet ip port"判断端口通不通. 有其它方法吗?先看下面的几种方法 准备环境 启动一个web服务器,提供端口. [wyq@localhost ~]$ pyt ...

最新文章

  1. python:自动化测试 playwright 库上传和下载
  2. 谷歌浏览器添加JSON-Handle插件
  3. 打造具备互补测试技能的团队
  4. “网工”可以跳越“网管”吗?
  5. [HDU]2089不要62
  6. 3d建模电脑配置要求_学习3D建模需要什么软件,电脑配置应该如何?新手自学会遇到的问题...
  7. Java_Freemarker
  8. why is list delete and edit icon rendered
  9. 苏州飘“彩云” 五年规模破百亿元
  10. C++学习之路 | PTA乙级—— 1039 到底买不买 (20 分)(精简)
  11. fragment类中的点击事件空指针异常
  12. python图片转动漫_python实现了照片转化为动漫模式
  13. calendar控件使用 extjs_extjs年月选择日历及通用js同步ajax调用返回json object
  14. 清爽登录界面html,基于css3实现扁平简洁清爽的登录注册页面代码
  15. Java设计模式——建造者模式
  16. 树莓派人脸识别源代码
  17. multicast msdp 1
  18. 计算机网络中tdm是什么,8.1 计算机网络FDM TDM计算机网络自学笔记.pdf
  19. 传说之下计算机音乐大全,传说之下同人音乐
  20. java实现人物关系预测_用 NetworkX + Gephi + Nebula Graph 分析人物关系(上篇)

热门文章

  1. VMware下Windows2003R2虚拟机磁盘扩容方法
  2. 防止IFRAME页被嵌套
  3. Google 公司的 Java 语言编写规范
  4. clearcase 创建副本
  5. eclipse安装Eclipse HTML Editor插件
  6. python编写登录接口与三级菜单小程序
  7. 第三章.数据类型和运算符
  8. 这两天用到的Jmeter录制
  9. 完成端口模式下的高性能网络服务器【转】
  10. Android 实现网页账号自动登录