1. 程式人生 > >Zookeeper / Linux Shell zookeeper自動重啟指令碼

Zookeeper / Linux Shell zookeeper自動重啟指令碼

最近博主遇到了 zookeeper 自動死掉的問題, 這裡 留下一個重啟指令碼, 作為備份

#!/bin/bash
#zk伺服器問題修復指令碼
#zkServer服務所在路徑
zkDir="/usr/local/zookeeper/bin/"
zkLog='zookeeper.out'
#進入zkServer.sh所在的目錄
cd $zkDir
flag=1
#當$flag=0時才停止迴圈設定無線迴圈
until [ $flag -eq 0 ]
do
	#檢視zookeeper.out日誌是否有錯誤資訊
	while tail -f $zkLog | grep "ERROR"
	do
	   #檢視QuorumPeerMain服務是否啟動
	   for pid in `jps | grep "QuorumPeerMain"`
	   do  
		   #如果啟動pid不為空且pid不為零
		   if [ -n "$pid" ] && [ "$pid" != "QuorumPeerMain" ]
		   then
				 #關閉該程序
				 kill -9 $pid
				 #記錄重啟時間
				 date >>$zkDir/reStartDate.txt
				  #關閉zkServer
				 ./zkServer.sh stop
				 #執行zkServer.sh命令啟動zk服務
				if ./zkServer.sh start | grep "STARTED"
				then
					#檢視服務狀態
					if ./zkServer.sh status | grep "Mode"
					then 
						if jps | grep "QuorumPeerMain"
						then
						  echo "restart Succeed!" >>$zkDir/reStartDate.txt
						fi
					fi
				fi
			fi 			 													 
	   done
	done
done