#!/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