İnternet bağlantısını konsoldan kontrol etmenin kolay bir yolu var mı? Bir kabuk betiğinde oynamaya çalışıyorum. Görünüşe göre , Internet bağlantısının iyi çalışıp çalışmadığını yorumlamak için HTTP yanıt kodunu kontrol etmek ve kontrol etmektir. Ancak bence asla çökmeyen bir siteyi kontrol etmeden kolay bir yol olmalı;)wget --spider http://www.google.co.in/
Düzenleme: Bireysel olarak incelenebilecek birçok faktör olabilir gibi görünüyor, iyi bir şey. Şu andaki niyetim blogumun kapalı olup olmadığını kontrol etmektir. Her dakika kontrol etmek için kurulum cronum var. Bunun için, bloguma wget - spider'in HTTP cevap kodunu kontrol ediyorum. Eğer 200 değilse, beni uyarıyor (site ağır yük altında olabileceğinden ve zaman geçtikçe ya da çok geç cevap verebileceğinden bunun sadece ping yapmaktan daha iyi olacağına inanıyorum). Şimdi dün, İnternet'imle ilgili bir sorun vardı. LAN iyi bağlandı, ancak hiçbir siteye erişemedim. Böylece senaryo wget cevabında 200 bulamadığı için bildirim almaya devam ediyorum. Şimdi internet bağlantım olduğunda bana bildirim gösterdiğinden emin olmak istiyorum.
Bu yüzden, DNS ve LAN bağlantısını kontrol etmek benim için biraz fazla önemli çünkü ne gibi bir problem olduğunu bulmak için özel bir ihtiyaç duymuyorum. Peki nasıl yapmamı önerirsin?
İşte blogumun çalışmama süresini kontrol etmeye devam etmek için senaryom:
#!/bin/bash
# Sending the output of the wget in a variable and not what wget fetches
RESULT=`wget --spider http://blog.ashfame.com 2>&1`
FLAG=0
# Traverse the string considering it as an array of words
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means all good
fi
done
if [ $FLAG -eq '0' ]; then
# A good point is to check if the internet is working or not
# Check if we have internet connectivity by some other site
RESULT=`wget --spider http://www.facebook.com 2>&1`
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means we do have internet connectivity and the blog is actually down
fi
done
if [ $FLAG -eq '1' ]; then
DISPLAY=:0 notify-send -t 2000 -i /home/ashfame/Dropbox/Ubuntu/icons/network-idle.png "Downtime Alert!" "http://blog.ashfame.com/ is down."
fi
fi
exit
Bu yolla, yalnızca blog yanıt kodumla ilgili bir sorun olduğunda İnternet bağlantısını kontrol etmem gerekiyor. Biraz ağır (ping kullanmıyorum) ama yanlış bir pozitif vermemeliyim. Sağ? Ayrıca facebook, google, yahoo vb. Gibi her zaman farklı bir siteye ping atmayı nasıl rastgele yapabilirim. daha sonra site kapanana veya daha uzun kontrollere neden olana kadar daha fazla kontrol atlayın (her dakika yerine 10 dakika). Ne düşünüyorsun?