天天看點

重新開機fastdfs腳本,前端lvs

功能:

目前端tracker出現當機、僵屍程序,以及網絡丢包嚴重時,自動登出掉storage.conf裡的tracker伺服器IP清單,并重新開機storage程序。

寫入crontab裡,每5分鐘執行一次腳本。

===============================================================================================

#!/bin/bash

. /root/.bash_profile

ip_tracker1=192.168.8.90

ip_tracker2=192.168.8.91

count1=`ping $ip_tracker1 -c 10 | grep 'received' |awk -F ',' '{print $2}' |awk '{print $1}'`

count2=`ping $ip_tracker2 -c 10 | grep 'received' |awk -F ',' '{print $2}' |awk '{print $1}'`

telnet $ip_tracker1 22122 | grep -w 'Connected' > /dev/null

#如果端口存活并且ping 10個包,保證有7個以上接收,代表正常。否則代表失敗。

if [ $? = "0" ] && [ "$count1" -gt 7 ];then

echo "#########################################" > /root/running.log

date >> /root/running.log

echo "Tracker server $ip_tracker1 is OK." >> /root/running.log

else

sed -i "s/tracker_server=$ip_tracker1/##&/" /etc/fdfs/storage.conf

echo "#########################################" >> /root/running.log

echo "Tracker server $ip_tracker1 is Critical!" >> /root/running.log

fi

telnet $ip_tracker2 22122 | grep -w 'Connected' > /dev/null

if [ $? = "0" ] && [ "$count2" -gt 7 ];then

echo "Tracker server $ip_tracker2 is OK!" >> /root/running.log

sed -i "s/tracker_server=$ip_tracker2/##&/" /etc/fdfs/storage.conf

echo "Tracker server $ip_tracker2 is Critical!" >> /root/running.log

#記錄下運作日志,如果出現有故障tracker,自動重新開機storage程序。

#并登出掉crontab計劃任務,避免重複執行重新開機storage程序。

grep "Critical" /root/running.log

if [ $? = "0" ];then

/etc/init.d/fdfs_storaged stop

sleep 3

/etc/init.d/fdfs_storaged start

sed -i '/restart/s/*\/5/##&/' /etc/crontab

本文轉自 liang3391 51CTO部落格,原文連結:http://blog.51cto.com/liang3391/523703