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

  • 相关阅读:
    IBM:linuxdeveloperweb
    xen虚拟化及工作原理
    (转) mysql 8小时空闲后连接超时的问题
    (转) 分布式缓存系统Memcached简介与实践
    ubuntu server 使用memcachetop监测memcache集群
    心安
    (转)Mysql导出表结构及表数据 mysqldump用法
    一个老工程师的心理话
    memcache设置set过期时间
    (转)memcached配置及命令
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/9844295.html
Copyright © 2011-2022 走看看