• 批量发布jar包springboot应用


    脚本分为主程序和执行程序。主程序叫main,执行程序叫做component.sh。

    1.下载: https://gitee.com/argor/main

    3.说明文档

    • 简介:启动 jar 包。
      版本:v2.7
      
      脚本功能:
          main - 主程序,放到 $PATH 下执行就行。
                 管理所有 jar 包的运行、停止……。
          component.sh - 执行程序,放到需要发布的 jar 包同级目录。
                 执行同级目录下 jar 包的实际操作。
          脚本输出信息:
              蓝色字体:执行的目标
              黄色字体:进程 pid
              白色字体:提示信息
              红色字体:执行的动作
      
      部署要求:
          1.修改 main 的变量 PUBLISHDIR,指向希望部署的目录。
              eg:PUBLISHDIR=/test
      
          2.执行程序,在启动程序时,注意开发环境、测试环境命令。默认使用测试环境命令。
              生产环境:附带启动参数
                       启动参数,按照实际情况自行修改变量:JVM_OPTS、SERVER_OPTS、LIST_PORT。
              测试环境:直接启动jar包,仅仅附带日志指定。
              修改环境:搜索标记Prod,Deve。
              生产环境监听的端口由变量 LIST_PORT 指定。
              测试环境监听的端口由 jar 包内配置决定。
              环境仅仅影响启动、重启,不影响停止、查看执行状态。
      
              eg:
                  EXEC_ENV="Deve"
                  LIST_PORT="7003"
      
      
          3.【创建部署目录名】
              在 PUBLISHDIR 下创建希望发布的应用的目录,放入对应的 jar 包。
              建议:目录名称跟 jar 主文件名一致。
                   目录只创建一级,为了不会同名。
                   以部署目录名为主,jar 包主文件要是不愿意一致的情况下,不要跟所有的【部署目录名】存在字符的包含关系。
      
          4.把执行程序放入 jar 包的同级目录。
              注意:部署时,文件扩展名不可以修改,必须以 .sh 结尾。
      
          5.可选项目
              把 REAEDME 拷贝到 ~/.mainrc 下,以获取帮助。
      
      main 使用语法:
          main [option parameter] [...]
      
          main
              直接执行,把所有的 jar 都启动。(已启动就显示正在运行,未启动就实际启动)
      
          main -t app1
              启动 app1
      
          main -r app4
              重启 app4
      
          main -R
              全部重启
      
          main -avS
              显示版本,显示作者,显示所有 jar 包执行状态。
      
          main 可接受的选项:
              t    启动 
              s    查看执行状态
              p    停止
              r    重启
              R    重启全部
              S    查看全部的执行状态
              T    启动全部
              P    停止全部
              v    版本信息
              a    作者
              h    获取帮助信息
      
          选项接受的参数:(参数就是部署目录名)
              1.建议使用应用部署时的【部署目录名】,同时建议与 jar 包主文件名一致。
              2.部署目录名之间不存在 字符上 的包含关系。因为 main 主程序在执行操作时是以搜索的方式去匹配对应的应用。
              3.当部署目录名可以是多级目录,但是不建议。
              4.部署目录名在确定差异足够的情况下,可以简写。
              5.简写时,比如 example,可以写 ex,只要其他目录没有包含 ex 字符的目录或文件,或 jar 包。
              6.简写时,比如 example,不可以写成 exple。
              7.建议写全。
      
      component.sh 说明:
          1.该脚本可以独立执行,启动同级目录下的 jar 包。
          2.注意:同级目录下只能有一个 jar 包。准备点描述,只能有一个扩展名为“.jar”的文件。
      
          接受的参数:
              1.参数仅包括:start,stop,status,restart。
              2.必须以 root 用户运行。
      
      
      正常执行情况下的报错:
          1.执行命令“main”,无任何显示,表示目标目录里没有对应【部署目录名】,或者【部署目录名】中没有对应的 component.sh 执行文件。
              或者 component.sh 没有执行属性。
          2.提示红色:Can't find jar to running.
              【部署目录名】下没有 jar 包。
      
      其他:
          1.main 程序允许一次执行多个操作。比如同时启动 app1、停止 app3……。
              eg:main -t app1 -s app2 -p app3 -r app4
      
          2.全部启动、重启……
              eg:
                  main
                  main -R
                  main -P
      
          3.已知未解决的问题:
              当写的选项参数【部署目录名】,不存在时,会报错。
              脚本没有对任何使用的 shell 命令做存在校验,要是不存在,程序执行会受影响。
              脚本在执行时,遇见错误,有可能会继续完成后续非法操作。请谨慎使用。
              输入错误的选项,提示选项不正确。当连续输入相同的错误选项,会有多次提示。(正确同)
      
      
          4.程序需要以 root 身份运行
      
          5.选项允许合并
      
      命令依赖:
          tree,grepecho,getopts,dirnamelspsawk,nohup,sleepkill,java,以及一些 bash 内置命令。
    一切代码都是为了生活,一切生活都是调剂
  • 相关阅读:
    Java tomcat max-http-header-size配置导致的oom
    Idea修改jvm参数
    Java List的SubList使用问题
    Java Arrays.asList的三个坑
    Java 重写equals的时候为什么一定要重写hashcode-一个例子
    远心镜头
    镜头常识总结
    halcon中保存图像jpeg的压缩比
    红外光 相机拍照
    电磁波的穿透能力总结
  • 原文地址:https://www.cnblogs.com/argor/p/12922805.html
Copyright © 2020-2023  润新知