家里的路由中繼別人的較遠處一個TP-link來上網,但是距離太遠,經常斷線,斷線異常時自己也不知道,於是寫個個檢測腳本來判斷是否掉線
主要是ping上級路由
通了再ping 114dns沒接觸過shell腳本,邏輯都沒怎么搞好直接上來一個while大循環加多重if
寫得很爛,將就着用好了
echo 'hello world'
while test "1" = "1"
do
# do something
#第一次ping 上級192.168.1.1
if ping -w 1 -c 1 192.168.1.1
then #若通則ping 114
if ping -w 1 -c 1 114.114.114.114
then echo '01 Network ok'
else #再ping 115確認
if -w 1 -c 1 ping 114.114.115.115
then echo '02 Network ok'
#上級通,114,115均不通,重啟網絡
else /etc/init.d/network restart #重啟網絡,等待即可
echo 'F1: Network Fail'
fi
fi
#第一次ping上級192不通,第二次ping
else
if ping -w 1 -c 1 192.168.1.1
then #第二次ping上級通了
if ping -w 1 -c 1 114.114.114.114
then #ping 114也通了
echo '04 Network ok'
else #ping 114 不通再ping 115確認
if ping -w 1 -c 1 114.114.115.115
then #115可達
echo '05 Network ok'
#114,115均不通,重啟網絡
else /etc/init.d/network restart #重啟網絡,等待即可
echo 'F3: network Fail'
fi
fi
#第二次ping上級還是不通,直接ping 114試下
else
if ping -w 1 -c 1 114.114.114.114
then #114可達,網絡正常
echo '03 network ok'
else #確實不通,唯有重啟
/etc/init.d/network restart #重啟網絡,等待即可
echo 'F2: Network Fail'
fi
fi
fi
sleep 100
done

https://my.oschina.net/hoyho/blog/513505