1. //根据入参增加nginx反向代理
    #!/bin/bash
    #set -x
  2.  
  3. log_path="./proc/logs/shellExecute.log"
    log_path_back="./proc/logs/shellExecute.log1"
    nginxBasePath="/home/netnumen/ems/ums-server/utils/nginx/nginx-1.4.7"
    nginxConfPath="${nginxBasePath}/conf/nginx.conf"
    runNginx="${nginxBasePath}/run.sh"
    stopNginx="${nginxBasePath}/stop.sh"
    app=$(echo $1 | tr -d '"')
    echo $app
    function execLog(){
    if [ "$?" -ne 0 ]
    then
    echo "[error] $(date "+%Y-%m-%d %H-%M-%S"), ${1}" >> $log_path
    exit 1
    else
    echo "[info] $(date "+%Y-%m-%d %H-%M-%S"), ${1}" >> $log_path
    fi
    }
    function CLEAN_LOG()
    {
    declare -i FILESIZE LIMIT
    FILESIZE=0
    FILESIZE=`stat -c%s ${log_path}`
    LIMIT=104857600 #100M Bytes
    if [ $FILESIZE -gt $LIMIT ]
    then
    rm -rf ${log_path_back}
    mv ${log_path} ${log_path_back}
    fi
  4.  
  5. }
    function main(){
    CLEAN_LOG
  6.  
  7. echo "************************************redirect app to rdk,update nginx*****************************************" >> $log_path
    execLog "redirect appName: ${app}"
    beforeInsertLocation=$(sed -n "/inside_location_end/=" ${nginxConfPath})
    execLog "compute insert location num: ${beforeInsertLocation}"
    let beforeInsertLocation=beforeInsertLocation-1
    execLog "compute before insert location num: ${beforeInsertLocation}"
  8.  
  9. insertContent="if (\$uri ~ ^/${app}/){ proxy_pass http://localhost:5812; break; }"
    execLog "add content: ${insertContent}"
    existLocation=$(sed -n "/if (\$uri ~ ^\/${app}\/){ proxy_pass http:\/\/localhost:5812; break; }/=" ${nginxConfPath})
    execLog "insert url existed?location: ${existLocation}"
    if [ ! -n "$existLocation" ];then
    sed -i "${beforeInsertLocation}a\ ${insertContent}" ${nginxConfPath}
    nohup $stopNginx;$runNginx &
    fi
    execLog "sed app url redirt content!"
  10.  
  11. }
  12.  
  13. main

一段shell脚本的更多相关文章

  1. 一段shell脚本分析

    工作中碰到这样的需求: 1.每天定时要执行python脚本生成excel 2.将生成的excel拷贝到特定目录下 3.通过python发送脚本发送给特定的接收者 因为之前没有接触过shell脚本,同事 ...

  2. 统计网卡流量的两段shell脚本(使用ifconfig)

    一个很小巧的shell脚本,使用ifconfig的不间断输出来统计网卡的流量,有需要的朋友可以参考下 使用shell脚本计算Linux网卡流量,方法中最关键点: ifconfig $eth_name ...

  3. 采用shell脚本统计代码的行数

    刚毕业那会儿有一次去台湾公司面试,我问多行代码怎么写.我从来没有想过这个问题,粗略计算,.惊叹:大概几十万行不行. 最近整理资料,看着eclipse左边全面上市,我觉得这个东西.代码共同拥有的行倒底总 ...

  4. Jenkins结合shell脚本实现(gitLab/gitHub)前端项目自动打包部署服务器

    原始发布部署: 石器时代的我们,先是本地打包好项目,在去服务器上把原来的文件删了,然后回到本地copy到服务器: 这操看起来简单,实际部署的人就知道多烦了,假如来几个项目都要重新发布:那就爽了: 今天 ...

  5. shell脚本分析 nginx日志访问次数最多及最耗时的页面

    当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在 ...

  6. 用于检测进程的shell脚本代码小结

    本文介绍一段shell脚本,它可以检测某进程或某服务是否正在运行,然后以邮件通知.有需要的朋友参考下 一个简单的shell脚本,用来找出关键的服务是否正在运行,适用于Linux操作系统或Unix操作系 ...

  7. 自动化软件部署的shell脚本

    在实际项目中,我们经常用到需要自动化部署软件的情况,这种情况下,我们就不能人为地在命令行下敲击命令了,一切都需要通过shell脚本自动化完成.所谓自动化完成,其实也就是通过写shell程序,模拟人为敲 ...

  8. 下载Google官方/CM Android源码自己主动又一次開始的Shell脚本

    国内因为某种原因,下载CM或Google官方的Android源码总easy中断.总看着机器.一中断就又一次运行repo sync还太麻烦,所以我特意编写了一段shell脚本(download.sh). ...

  9. 通过Shell脚本来创建批量服务器上的MySQL数据库账号

    1.项目背景 因监控需要,我们需要在既有的每个MySQL实例上创建一个账号.公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实.所以,我们写了一个简单的shell脚本,用来创建批量 ...

随机推荐

  1. codeforces_456C_dp

    链接:http://codeforces.com/problemset/problem/456/C C. Boredom time limit per test 1 second memory lim ...

  2. UI布局术语

    horizontal, vertical top, left, bottom, right UIEdgeInsets margin与padding Interpreting Values Values ...

  3. java_线程类的基本功能

    Thread类是实现了Runnable接口 其方法有: start()开始:开始线程 run()跑:线程内容 currentThread()现在的线程:返回当前线程 getName():获取线程名 s ...

  4. cmd命令安装、卸载、启动和停止Windows Service

    1.运行--〉cmd:打开cmd命令框 2.在命令行里定位到InstallUtil.exe所在的位置 InstallUtil.exe 默认的安装位置是在C:/Windows/Microsoft.NET ...

  5. 第一章 React新的前端思维方式

    ---恢复内容开始--- 第一章 React新的前端思维方式 1.1 初始化一个React项目 1.安装create-react-app npm install --global create-rea ...

  6. 如何同步iframe与嵌入内容的高度

    最近频繁的做一些通过iframe在a页面嵌入b页面需求.总结下来,有以下问题需要解决 1.如何同步iframe与嵌入内容的高度 2.将b页面载入到a页面后,如何隐藏掉b页面上的元素,如左导航,顶部导航 ...

  7. jieba的基本使用

    目录 1.分词 2.添加自定义词典 3.关键词提取 4.词性标注 jieba 是一款优秀的 Python 第三方中文分词库,可以使用 pip install jieba / pip3 install ...

  8. 用Python实现阿里钉钉机器人读取数据库内容自动发群通知

    最近想把一些预警数据信息按照一定的要求自动发送到移动端APP,最终把目标放在了腾讯的微信和阿里的钉钉软件上,由于刚开始学习python,于是编程工具想用python来实现.微信使用群体最广,通过一天的 ...

  9. selectByExampleWithBLOBs-----搜索结果包含大字段类型----搜索结果包含大字段类型

    http://www.jb51.net/article/121482.htm mybatis generator 使用方法教程(生成带注释的实体类)

  10. 学习MongoDB--(5-2):索引(查看索引的使用,管理索引)

    前一篇简单介绍了索引,并给出了基本的索引使用,这一次,我们进一步说一下MongoDB中的索引,包括如何查看查询是否走索引,如何管理索引和地理空间索引等. [使用explain和hint] 前面讲高级查 ...