監控服務狀態並一鍵重啟指令碼

2021-09-25 02:54:37 字數 2565 閱讀 4389

需求:因服務宕,或者服務未啟,導致業務出問題,現編寫以下指令碼,放到各個伺服器上,設定定時任務crontab(亦可使用while迴圈實現,但本指令碼未使用)。

指令碼如下:

#!/bin/bash  

checkprocess()

##################################

mysql()

##################################

nginx()

################################

zabbix_agentd()

##################################

karaf()

#################################

keepalived()

#################################

redis()

'|xargs kill 9

/usr/local/redis/src/redis-server /etc/redis/redis9081.conf

/usr/local/redis/src/redis-server /etc/redis/redis9082.conf

/usr/local/redis/src/redis-server /etc/redis/redis9083.conffi}

#################################

fdfs()

'|xargs kill -9

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restartfi}

#################################

tomcat()

#################################

h5()

#################################

lps()

'|xargs kill -9

/usr/local/sbin/lps -c /etc/lps/lps1281.conf -d

/usr/local/sbin/lps -c /etc/lps/lps1282.conf –dfi}

#################################

nps()

'|xargs kill -9

cd /home/rkcloud-nps/ && sh start.shfi}

###################################

api()

#################################

other()

#################################

process_num=`ps -ef |grep "$1" | grep -v grep|grep -v reload.sh| wc -l`

if [ $process_num -eq 0 ];then

case $1 in

mysql)

echo "1"

mysql;;

nginx)

echo "1"

nginx;;

zabbix_agentd)

echo "1"

zabbix_agentd;;

karaf)

echo "1"

karaf;;

keepalived)

echo "1"

keepalived;;

redis)

echo "1"

redis;;

fdfs)

echo "1"

fdfs;;

tomcat)

echo "1"

tomcat;;

message)

echo "1"

h5;;

lps)

echo "1"

lps;;

nps)

echo "1"

nps;;

api)

echo "1"

api;;

*) echo "1"

other;;

esac

else

echo "0"

fi

指令碼寫完後,將指令碼上傳到伺服器相應位置,如/root/路徑下; 

2.新增linux計畫任務: 

1)crontab -e,在裡邊加入: 

/5 * * * sh /root/reload.sh 讓該指令碼每2分鐘執行一次 

2)重啟crond服務使之生效: 

service crond restart 

3)檢視已新增的計畫任務,確保本次新增成功: 

crontab -l ,如果可以看到剛才新增的那段話,則證明新增成功。

nginx一鍵啟動,停止 重啟指令碼

注 有問題或更好可以一起 謝謝 bin bash nginx usr local nginx sbin nginx echo nginx一鍵啟動,停止,檢視.read ep 請輸入你的操作,1.stop,2.start,3.reload,4.status 1,2,3,4 nginx1 case ng...

服務可用監控重啟指令碼

伺服器上部署了乙個沒有運維接入健康檢查的服務,如何通過自己書寫的指令碼進行監控該服務是否正在執行,並在服務崩潰後重啟呢?check reboot.py import subprocess import os import datetime 這裡grep後接指定服務大概的名字 res subproce...

一鍵安裝Apache服務指令碼

編寫指令碼之前先要安裝apache服務需要依賴的編譯環境和庫。使用yum的安裝方式,yum源使用網易的yum源就行。yum install y gcc gcc c apr apr util apr devel apr util devel 回車一鍵安裝 編寫指令碼 vim autoinstall a...