• 通过端口检测远程服务器是否开启,如果没有开启开启本地替代服务脚本


    #!/usr/bin/env bash
    
    # -------------------------------
    #注意 使用 时候 请先安装 nc
    #yum install nc
    #1. 请修改要执行的 命令所在目录 和命令名称 
    #2. 请修改要执行的 命令所在目录 和命令名称 
    # -------------------------------
    
    #重试次数以后开服
    RETRY_TIME=2
    #标记文件 ,用于记录次数
    FLAG_FILE=/tmp/check_need_start_loginserver
    #要检查的远程Ip
    CHECK_REMOTE_IP=192.168.0.33
    #本地ip
    LOCAL_IP=127.0.0.1
    
    #请编辑要打开的目标文件所在目录*****
    DEST_DIR=/usr/bin/
    #要打开的文件命令(命令必须用单引号括起来)
    DEST_BIN='ps x'
    
    function check_live(){
        cmd_line="$1 $2"
        echo 'the cmd_line is',$cmd_line
        nc -w 10 -v $cmd_line  < /dev/null &>/dev/null;
        if [ $? -eq 0 ]
          then
            return 0
          else
            echo $cmd_line:fail
            return 1
        fi
    }
    
    function start_server(){
        echo "begin start server"
        ###---
        # 这个就是要开启的程序
        cd $DEST_DIR
        pwd
        $DEST_BIN
    }
    
    
    
    function check_need_start_server(){
        echo "add new line to file " >> $FLAG_FILE
        count_line=`wc -l $FLAG_FILE | awk '{print $1}'`
        if [ $count_line -gt $RETRY_TIME ];then
            rm -f $FLAG_FILE
            echo "beyound the limit try times,so begin start server"
            start_server
        fi
    }
    
    
    function main(){
        #记录一下时间
        echo `date`
    
        local_login_port=33101
    
        #check local server
        if check_live "$LOCAL_IP" $local_login_port 
        then
            echo "local is ok"
            exit 0
        else
            echo "local is wrong"
        fi
    
        #check remove server
        if check_live  $CHECK_REMOTE_IP  $local_login_port 
        then
            echo "remote is ok"
            rm -f $FLAG_FILE
            exit 0
        else
            echo "remote is unreachable ,so we check wheather need open local server"
        fi
    
        check_need_start_server
    }
    
    main
    
    
  • 相关阅读:
    linux安装mongodb磁盘空间不足
    ccf颁奖晚会
    Bug总结流程
    测试自学过程
    一个div,包含两个div,调整文字位置和div平均分布
    一个div,包含三个小的div,平均分布的样式
    测试成长之路
    k8s常用命令记录
    K8S 1.20.6安装dashboard(基于kubernetes-dashboard 2.0.0版本)
    F. Programming Contest
  • 原文地址:https://www.cnblogs.com/cheerupforyou/p/8244739.html
Copyright © 2020-2023  润新知