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