zoukankan      html  css  js  c++  java
  • 编写部署用到的部分shell脚本收集

    自动化部署的时候经常需要写一堆的shell,这里放一些我整理出来比较公用的脚本。

    1.根据端口kill掉进程(使用于大部分的关闭指令)

    port=8766
    #根据端口号查询对应的pid
    pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
    #杀掉对应的进程,如果pid不存在,则不执行
    if [ -n "$pid" ]; then
    kill -9 $pid;
    fi

    2.循环遍历文件夹并取出某种类型的文件

    比方说现在有一个文件夹a,需要遍历拿到这个文件夹下面所有的jar

    #用于遍历文件夹的函数
    function read_dir(){
    for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令
    do
     if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错
     then
     read_dir $1"/"$file
     else
     echo $1"/"$file 
     if [[ $1"/"$file  =~ .jar$ ]];then          #把这里的.jar换成.zip就能拿出所有以zip结尾的压缩包,以此类推
      mv -f $1"/"$file  ${WORKSPACE}/jars
     fi
     fi
    done
    }
    
    #调用遍历函数,直接遍历文件夹
    read_dir 目录

    3.替换jar包里面的文件

    很多时候我们需要替换到jar包里面的一些东西,比方说最经典的application.yml, 下面的$1就是调用函数输入的第一个参数,比方说下面的*-1.0-SNAPSHOT.jar      

    
    
    CONF_SOURCE=你的存放将要替换的application.yml的路径
    function replace_conf(){
    jar -xvf   $1  BOOT-INF/classes/application.yml
    cp   $CONF_SOURCE/application.yml   BOOT-INF/classes/application.yml
    jar uvf $1 BOOT-INF/classes/application.yml
    }
    
    #调用更换配置函数
    replace_conf   *-1.0-SNAPSHOT.jar         

    4.强制复制替换

    这个命令我不止一次写成/cp

    cp
  • 相关阅读:
    在Raspberry上使用小度WIFI
    使用Doxyen和Graghviz为自己的库快速做个文档
    在Cocos2d-X中新建Android项目
    管理——执行
    windows环境下搭建Cocos2d-X开发环境
    Spark wordcount 编译错误 -- reduceByKey is not a member of RDD
    记录一次简单且容易犯的React Hook Router 相关错误
    关于微信浏览器H5页面软键盘关闭导致页面空缺
    【转载】关于vue-router的使用
    文字放大缩小
  • 原文地址:https://www.cnblogs.com/daysn/p/11230163.html
Copyright © 2011-2022 走看看