zoukankan      html  css  js  c++  java
  • 分发器上的会话代理进程控制脚本使用说明

     

    分发器上的会话代理进程控制脚本使用说明

    分发器上部署了三个会话代理进程:
            a. ans_lb_web_80 : 代理服务器的HTTP 80端口服务,WEB客户端的HTTP请求被我司的代理程序复制三份,分别发给三台WEB服务器。只要有一台WEB服务器工作正常,则客户端的HTTP请求就可以正常响应。
            b. ans_lb_fsvr_8086 :  代理服务器的HTTP 8086端口服务,Windows客户端上,用户点击打印后,上传的文件将被我司的代理程序复制三份,分别发给三台服务器,可以查看服务器均存在上传文件,以及审批记录里面可以查看到此次打印的文件记录。只要有一台服务器工作正常,则Windows客户端用户,就可以正常上传打印文件。
            c. ans_lb_fsvr_18001 : 代理服务器的TCP 18001端口服务,Linux客户端上,用户点击打印后,上传的文件将被我司的代理程序复制三份,分别发给三台服务器,可以查看服务器均存在上传文件,以及审批记录里面可以查看到此次打印的文件记录。只要有一台服务器工作正常,则Linux客户端用户,就可以正常上传打印文件。
     
    会话代理进程部署的目录为: /opt/ans
    目录结构如下图所示:
    文件 ans_lb_rproxy_ctl.sh 是控制脚本
    目录结构一定要和下图相同,否则控制脚本会工作不正常。
    1. 设置会话代理进程开机自启动。
    在 /etc/rc.local 中增加以下内容。必须放在 exit 0 的前面。
    # Startup ans_lb_rproxy
    /opt/ans/ans_lb_rproxy_ctl.sh restart
     
    /etc/rc.local 内容如下图所示:
    重启系统,验证会话代理程序是否正常启动。
    可以使用命令进行查询这状态:sudo /opt/ans/ans_lb_rproxy_ctl.sh status
    或者使用命令查询进程是否存在: sudo ps -waux | grep ans_lb_
    2. 会话代理进程控制脚本使用
     
    查看帮助信息:sudo /opt/ans/ans_lb_rproxy_ctl.sh help
    查看会话代理进程的状态:sudo /opt/ans/ans_lb_rproxy_ctl.sh status
    停止会话代理进程:sudo /opt/ans/ans_lb_rproxy_ctl.sh stop
    启动会话代理进程:sudo /opt/ans/ans_lb_rproxy_ctl.sh start
    重启会话代理进程:sudo /opt/ans/ans_lb_rproxy_ctl.sh restart

    附录:

    1. 会话代理控制脚本内容

    #!/usr/bin/env bash
    #filename: ans_lb_rproxy_ctl.sh
    
    cur_dir=`pwd`
    dir_name=`dirname $0`
    base_name=`basename $0`
    ans_uid=`id -u`
    
    usage_rproxy()
    {
        echo "Usage: sudo $base_name [start|stop|restart|staus|help]"
        echo "    start    --  Start program."
        echo "    stop     --  Stop program."
        echo "    restart  --  Restart program."
        echo "    status   --  Display service status."
        echo "    help     --  Display help information."
        return 0
    }
    
    invoke_sudo() 
    {
        if [ $ans_uid -ne 0 ]; then
            sudo id > /dev/null 2>/dev/null
            if [ $? -ne 0 ]; then
                echo "Error: Elevate permissions failed."
                return 1
            fi
        fi
        
        return 0
    }
    
    start_rproxy_ans_lb_web_80()
    {
        invoke_sudo
        if [ $? -ne 0 ]; then
            echo "Error: Permission denied."
            return 1
        fi
        
        echo "Start program ans_lb_web_80 ..."
        if [ -f ${dir_name}/ans_lb_web_80/ans_lb_web_80 -a -x ${dir_name}/ans_lb_web_80/ans_lb_web_80 -a -f ${dir_name}/ans_lb_web_80/app_web.json -a -r ${dir_name}/ans_lb_web_80/app_web.json ]; then
            sudo nohup ${dir_name}/ans_lb_web_80/ans_lb_web_80 -f ${dir_name}/ans_lb_web_80/app_web.json > /dev/null 2>/dev/null &
            if [ $? -ne 0 ]; then
                echo "Error: Program ans_lb_web_80 start failed."
                return 1
            else
                echo "Info: Program ans_lb_web_80 start successful."
                return 0
            fi
        else
            echo "Error: ans_lb_web_80 file permissions are incorrect or the directory is incorrect."
            return 1
        fi
        
    }
    
    start_rproxy_ans_lb_fsvr_8086()
    {
        invoke_sudo
        if [ $? -ne 0 ]; then
            echo "Error: Permission denied."
            return 1
        fi
        
        echo "Start program ans_lb_fsvr_8086 ..."
        if [ -f ${dir_name}/ans_lb_fsvr_8086/ans_lb_fsvr_8086 -a -x ${dir_name}/ans_lb_fsvr_8086/ans_lb_fsvr_8086 -a -f ${dir_name}/ans_lb_fsvr_8086/app.json -a -r ${dir_name}/ans_lb_fsvr_8086/app.json ]; then
            sudo nohup ${dir_name}/ans_lb_fsvr_8086/ans_lb_fsvr_8086 -f ${dir_name}/ans_lb_fsvr_8086/app.json > /dev/null 2>/dev/null &
            if [ $? -ne 0 ]; then
                echo "Error: Program ans_lb_fsvr_8086 start failed."
                return 1
            else
                echo "Info: Program ans_lb_fsvr_8086 start successful."
                return 0
            fi
        else
            echo "Error: ans_lb_fsvr_8086 file permissions are incorrect or the directory is incorrect."
            return 1
        fi
        
    }
    
    start_rproxy_ans_lb_fsvr_18001()
    {
        invoke_sudo
        if [ $? -ne 0 ]; then
            echo "Error: Permission denied."
            return 1
        fi
        
        echo "Start program ans_lb_fsvr_18001 ..."
        if [ -f ${dir_name}/ans_lb_fsvr_18001/ans_lb_fsvr_18001 -a -x ${dir_name}/ans_lb_fsvr_18001/ans_lb_fsvr_18001 -a -f ${dir_name}/ans_lb_fsvr_18001/app.json -a -r ${dir_name}/ans_lb_fsvr_18001/app.json ]; then
            sudo nohup ${dir_name}/ans_lb_fsvr_18001/ans_lb_fsvr_18001 -f ${dir_name}/ans_lb_fsvr_18001/app.json > /dev/null 2>/dev/null &
            if [ $? -ne 0 ]; then
                echo "Error: Program ans_lb_fsvr_18001 start failed."
                return 1
            else
                echo "Info: Program ans_lb_fsvr_18001 start successful."
                return 0
            fi
        else
            echo "Error: ans_lb_fsvr_18001 file permissions are incorrect or the directory is incorrect."
            return 1
        fi
        
    }
    
    start_rproxy()
    {
        invoke_sudo
        if [ $? -ne 0 ]; then
            echo "Error: Permission denied."
            return 1
        fi
        
        local line_num start_retval
        start_retval=0
        line_num=`sudo ps -waux | grep ans_lb_web_80 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $line_num -ne 0 ]; then
            echo "Info: Program ans_lb_web_80 is already running."
        else
            start_rproxy_ans_lb_web_80
            if [ $? -ne 0 ]; then
                start_retval=$(( $start_retval + 1 ))
            else
                sleep 1
            fi
        fi
        
        line_num=`sudo ps -waux | grep ans_lb_fsvr_8086 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $line_num -ne 0 ]; then
            echo "Info: Program ans_lb_fsvr_8086 is already running."
        else
            start_rproxy_ans_lb_fsvr_8086
            if [ $? -ne 0 ]; then
                start_retval=$(( $start_retval + 1 ))
            else
                sleep 1
            fi
        fi
        
        line_num=`sudo ps -waux | grep ans_lb_fsvr_18001 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $line_num -ne 0 ]; then
            echo "Info: Program ans_lb_fsvr_18001 is already running."
        else
            start_rproxy_ans_lb_fsvr_18001
            if [ $? -ne 0 ]; then
                start_retval=$(( $start_retval + 1 ))
            else
                sleep 1
            fi
        fi
        
        if [ $start_retval -ne 0 ]; then
            echo "Info: Start failed."
            return 1
        fi
        
        echo "Info: Start successful."
        return 0
    }
    
    stop_rproxy_ans_lb_web_80()
    {
        invoke_sudo
        if [ $? -ne 0 ]; then
            echo "Error: Permission denied."
            return 1
        fi
        
        echo "Stop program ans_lb_web_80 ..."
        sudo ps -waux | grep ans_lb_web_80 | grep -v grep | awk '{print $2}' | sudo xargs kill -9
        if [ $? -ne 0 ]; then
            echo "Error: Program ans_lb_web_80 stop failed."
            return 1
        else
            echo "Info: Program ans_lb_web_80 stop successful."
            return 0
        fi
        
    }
    
    stop_rproxy_ans_lb_fsvr_8086()
    {
        invoke_sudo
        if [ $? -ne 0 ]; then
            echo "Error: Permission denied."
            return 1
        fi
        
        echo "Stop program ans_lb_fsvr_8086 ..."
        sudo ps -waux | grep ans_lb_fsvr_8086 | grep -v grep | awk '{print $2}' | sudo xargs kill -9
        if [ $? -ne 0 ]; then
            echo "Error: Program ans_lb_fsvr_8086 stop failed."
            return 1
        else
            echo "Info: Program ans_lb_fsvr_8086 stop successful."
            return 0
        fi
        
    }
    
    stop_rproxy_ans_lb_fsvr_18001()
    {
        invoke_sudo
        if [ $? -ne 0 ]; then
            echo "Error: Permission denied."
            return 1
        fi
        
        echo "Stop program ans_lb_fsvr_18001 ..."
        sudo ps -waux | grep ans_lb_fsvr_18001 | grep -v grep | awk '{print $2}' | sudo xargs kill -9
        if [ $? -ne 0 ]; then
            echo "Error: Program ans_lb_fsvr_18001 stop failed."
            return 1
        else
            echo "Info: Program ans_lb_fsvr_18001 stop successful."
            return 0
        fi
        
    }
    
    stop_rproxy()
    {
        invoke_sudo
        if [ $? -ne 0 ]; then
            echo "Error: Permission denied."
            return 1
        fi
        
        local line_num stop_retval
        stop_retval=0
        line_num=`sudo ps -waux | grep ans_lb_web_80 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $line_num -eq 0 ]; then
            echo "Info: Program ans_lb_web_80 is already stopped."
        else
            stop_rproxy_ans_lb_web_80
            if [ $? -ne 0 ]; then
                stop_retval=$(( $stop_retval + 1 ))
            else
                sleep 1
            fi
        fi
        
        line_num=`sudo ps -waux | grep ans_lb_fsvr_8086 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $line_num -eq 0 ]; then
            echo "Info: Program ans_lb_fsvr_8086 is already stopped."
        else
            stop_rproxy_ans_lb_fsvr_8086
            if [ $? -ne 0 ]; then
                stop_retval=$(( $stop_retval + 1 ))
            else
                sleep 1
            fi
        fi
        
        line_num=`sudo ps -waux | grep ans_lb_fsvr_18001 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $line_num -eq 0 ]; then
            echo "Info: Program ans_lb_fsvr_18001 is already stopped."
        else
            stop_rproxy_ans_lb_fsvr_18001
            if [ $? -ne 0 ]; then
                stop_retval=$(( $stop_retval + 1 ))
            else
                sleep 1
            fi
        fi
        
        if [ $stop_retval -ne 0 ]; then
            echo "Info: Stop failed."
            return 1
        fi
        
        echo "Info: Stop successful."
        return 0
    }
    
    restart_rproxy()
    {
        invoke_sudo
        if [ $? -ne 0 ]; then
            echo "Error: Permission denied."
            return 1
        fi
        local line_num stop_retval start_retval;
        stop_retval=0
        start_retval=0
        line_num=`sudo ps -waux | grep ans_lb_web_80 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $line_num -ne 0 ]; then
            stop_rproxy_ans_lb_web_80
            if [ $? -ne 0 ]; then
                stop_retval=$(( $stop_retval + 1 ))
            else
                sleep 1
            fi
        fi
        
        line_num=`sudo ps -waux | grep ans_lb_fsvr_8086 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $line_num -ne 0 ]; then
            stop_rproxy_ans_lb_fsvr_8086
            if [ $? -ne 0 ]; then
                stop_retval=$(( $stop_retval + 1 ))
            else
                sleep 1
            fi
        fi
        
        line_num=`sudo ps -waux | grep ans_lb_fsvr_18001 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $line_num -ne 0 ]; then
            stop_rproxy_ans_lb_fsvr_18001
            if [ $? -ne 0 ]; then
                stop_retval=$(( $stop_retval + 1 ))
            else
                sleep 1
            fi
        fi
        
        if [ $stop_retval -ne 0 ]; then
            echo "Info: Can not stop program, the restart failed."
            return 1
        fi
        
        start_rproxy_ans_lb_web_80
        if [ $? -ne 0 ]; then
            start_retval=$(( $start_retval + 1 ))
        else
            sleep 1
        fi
        
        start_rproxy_ans_lb_fsvr_8086
        if [ $? -ne 0 ]; then
            start_retval=$(( $start_retval + 1 ))
        else
            sleep 1
        fi
        
        start_rproxy_ans_lb_fsvr_18001
        if [ $? -ne 0 ]; then
            start_retval=$(( $start_retval + 1 ))
        else
            sleep 1
        fi
        
        if [ $start_retval -ne 0 ]; then
            echo "Info: Can not start program, the restart failed."
            return 1
        fi
        
        echo "Info: Restart successful."
        return 0
    }
    
    status_rproxy()
    {
        invoke_sudo
        if [ $? -ne 0 ]; then
            echo "Error: Permission denied."
            return 1
        fi
        
        echo "Service status information:"
        local ps_num
        ps_num=`sudo ps -waux | grep ans_lb_web_80 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $ps_num -eq 3 ]; then
            echo "    ans_lb_web_80 : [ Running ]"
        elif [ $ps_num -eq 0 ]; then
            echo "    ans_lb_web_80 : [ Stopped ]"
        else
            echo "    ans_lb_web_80 : [ Abnormal ]"
            echo "The program ans_lb_web_80 is abnormal. Please restart this program ans_lb_web_80."
        fi
        
        ps_num=`sudo ps -waux | grep ans_lb_fsvr_8086 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $ps_num -eq 3 ]; then
            echo "    ans_lb_fsvr_8086 : [ Running ]"
        elif [ $ps_num -eq 0 ]; then
            echo "    ans_lb_fsvr_8086 : [ Stopped ]"
        else
            echo "    ans_lb_fsvr_8086 : [ Abnormal ]"
            echo "The program ans_lb_fsvr_8086 is abnormal. Please restart this program ans_lb_fsvr_8086."
        fi
        
        ps_num=`sudo ps -waux | grep ans_lb_fsvr_18001 | grep -v ans_lb_rproxy_ctl | grep -v grep | wc -l`
        if [ $ps_num -eq 3 ]; then
            echo "    ans_lb_fsvr_18001 : [ Running ]"
        elif [ $ps_num -eq 0 ]; then
            echo "    ans_lb_fsvr_18001 : [ Stopped ]"
        else
            echo "    ans_lb_fsvr_18001 : [ Abnormal ]"
            echo "The program ans_lb_fsvr_18001 is abnormal. Please restart this program ans_lb_fsvr_18001."
        fi
        
        return 0
    }
    
    case $1 in
        "start")
            start_rproxy
            ;;
        "stop")
            stop_rproxy
            ;;
        "restart")
            restart_rproxy
            ;;
        "status")
            status_rproxy
            ;;
        "help")
            usage_rproxy
            exit 0
            ;;
        *)
            usage_rproxy
            exit 0
            ;;
    
    esac
    
    exit 0

    2. 实验环境部署

    ============== End

  • 相关阅读:
    DC中为什么要用Uniquify?
    hdu 1596 find the safest road
    hdu2112 HDU Today
    hdu 2066 一个人的旅行
    poj 3026 Borg Maze
    poj 1979 Red and Black
    poj 1321 棋盘问题
    hdu 1010 Tempter of the Bone
    hdu 4861 Couple doubi
    codeforces584B Kolya and Tanya
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/9844295.html
Copyright © 2011-2022 走看看