zoukankan      html  css  js  c++  java
  • shell 自动map和unmap 应用实例url域名【升级版】

    #!/bin/bash
    # ************************ USEAGE **********************************
    # program:mapurl.sh
    # Time:2017/11/15
    # version:V 2.0.0
    # auth: Eden
    # content:user to map or unmap url
    # note:
    #     1.only suitable for cloudfoundry appname's url
    # ******************************************************************
    
    ###url map  function  for  cloudfoundry
    function mapurl(){
    #a="one,two,three,four"
    a=$(cf a|grep $1|tr -s ' '|cut -d ' ' -f 6-|cut -d ',' -f 1-)
    OLD_IFS="$IFS"
    IFS=","
    arr=($a)
    IFS="$OLD_IFS"
    
    for s in ${arr[@]}
    do
      echo "$s"
    
    cf map-route $2  $(echo "$s"|cut -d '.' -f 2-) -n $(echo "$s"|cut -d '.' -f 1) 
    
    done
    }
    
    ###url unmap  function  for  cloudfoundry
    function unmapurl(){
    a=$(cf a|grep $1|tr -s ' '|cut -d ' ' -f 6-|cut -d ',' -f 1-)
    OLD_IFS="$IFS"
    IFS=","
    arr=($a)
    IFS="$OLD_IFS"
    
    for s in ${arr[@]}
    do
      echo "$s"
    
    cf unmap-route $1  $(echo "$s"|cut -d '.' -f 2-) -n $(echo "$s"|cut -d '.' -f 1) 
    
    done
    }
    #########################################################
    MAP_FLAG=FALSE;
    
    ARGS=`getopt -o at:c:: --long all,type:,clong:: -n 'example.sh' -- "$@"`
    if [ $? != 0 ]; then
        echo "Terminating..."
        exit 1
    fi
    
    #echo $ARGS
    #将规范化后的命令行参数分配至位置参数($1,$2,...)
    eval set -- "${ARGS}"
    
    while true
    do
        case "$1" in
            -a|--all) 
                echo "map and unmap url";
                MAP_FLAG=TRUE;
                shift
                ;;
            -t|--type)
                echo "Option t, argument $2";
                MAP_TYPE=$2
                shift 2
                ;;
            -c|--clong)
                case "$2" in
                    "")
                        echo "Option c, no argument";
                        shift 2  
                        ;;
                    *)
                        echo "Option c, argument $2";
                        shift 2;
                        ;;
                esac
                ;;
            --)
                shift
                break
                ;;
            *)
                echo "Internal error!"
                exit 1
                ;;
        esac
    done
    
    #处理剩余的参数
    for arg in $@
    do
        echo "appname: $arg"
    done
    
    #handles the domain name of the application process
    SOURCE_APPNAME=$1;
    DEST_APPNAME=$2;
    if [[ "_$MAP_FLAG" == "_TRUE" ]];then
        mapurl $SOURCE_APPNAME $DEST_APPNAME;
        unmapurl $SOURCE_APPNAME;
        echo $MAP_FLAG
    else
        if [ "_$(echo $MAP_TYPE|tr 'a-z' 'A-Z')" == "_MAP" ];then
            echo $MAP_TYPE|tr 'a-z' 'A-Z'
            mapurl $SOURCE_APPNAME $DEST_APPNAME ;
            echo "$SOURCE_APPNAME, $DEST_APPNAME" ;
        elif [ "_$(echo $MAP_TYPE|tr 'a-z' 'A-Z')" == "_UNMAP" ];then
            echo $MAP_TYPE|tr 'a-z' 'A-Z'
            unmapurl $SOURCE_APPNAME;
            echo $SOURCE_APPNAME;
        else
            echo  "please input url map type:map or unmap!"    
        fi
    fi
  • 相关阅读:
    .NET中26个优化性能方法
    通过纯真IP地址实现根据用户地址显示信息
    jQuery中json中关于带有html代码网页的处理
    gb2312提交的url编码转换成utf8的查询
    c# Bitmap byte[] Stream 文件相互转换
    WebClient 上传文件
    进程监控模块配置与使用 ------ACE(开源项目)
    boost配置
    C++学习总结3
    SAE云平台的使用
  • 原文地址:https://www.cnblogs.com/husbandmen/p/7840801.html
Copyright © 2011-2022 走看看