需求:因服務宕,或者服務未啟,導致業務出問題,現編寫以下指令碼,放到各個伺服器上,設定定時任務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...