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