क्या कंसोल से इंटरनेट कनेक्टिविटी की जांच करने का एक आसान तरीका है? मैं एक शेल स्क्रिप्ट में चारों ओर खेलने की कोशिश कर रहा हूं। एक विचार मुझे लगता है कि इंटरनेट कनेक्शन ठीक काम कर रहा है या नहीं इसकी व्याख्या करने के लिए HTTP प्रतिक्रिया कोड की जांच करें। लेकिन मुझे लगता है कि किसी साइट की जांच करने की आवश्यकता के बिना आसान तरीका होना चाहिए जो कभी भी दुर्घटनाग्रस्त न हो;)wget --spider http://www.google.co.in/
संपादित करें: ऐसा लगता है कि बहुत सारे कारक हो सकते हैं जो व्यक्तिगत रूप से जांच की जा सकती है, अच्छी बात है। मेरा इरादा इस बात की जाँच करने का है कि मेरा ब्लॉग डाउन है या नहीं। मेरे पास हर मिनट की जांच करने के लिए सेटअप क्रोन है। इसके लिए, मैं अपने ब्लॉग पर wget --spider के HTTP प्रतिक्रिया कोड की जाँच कर रहा हूँ। यदि इसकी 200 नहीं है, तो यह मुझे सूचित करता है (मेरा मानना है कि यह सिर्फ इसे पिंग करने से बेहतर होगा, क्योंकि साइट भारी हो सकती है और बहुत देर हो सकती है या प्रतिक्रिया दे सकती है)। अब कल, मेरे इंटरनेट के साथ कुछ समस्या थी। लैन ठीक जुड़ा था, लेकिन बस मैं किसी भी साइट तक नहीं पहुंच सका। इसलिए मैं सूचनाएं प्राप्त करता रहता हूं क्योंकि स्क्रिप्ट को प्रतिक्रिया में 200 नहीं मिल सके। अब मैं यह सुनिश्चित करना चाहता हूं कि इंटरनेट कनेक्टिविटी होने पर यह मुझे सूचना प्रदर्शित करे।
इसलिए, DNS और LAN कनेक्टिविटी के लिए जाँच करना मेरे लिए थोड़ा मुश्किल है क्योंकि मुझे इस बात की कोई विशेष आवश्यकता नहीं है कि यह क्या समस्या है। तो आप क्या सुझाव देते हैं कि मैं इसे कैसे करता हूं?
यहाँ मेरे स्क्रिप्ट को अपने ब्लॉग के लिए डाउनटाइम जाँचते रहना है:
#!/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
इस तरह मुझे केवल इंटरनेट कनेक्टिविटी के लिए जांचना होगा जहां मेरे ब्लॉग प्रतिक्रिया कोड के साथ कोई समस्या है। इसका थोड़ा भारी (जैसा कि मैं पिंग का उपयोग नहीं कर रहा हूं) लेकिन किसी भी तरह की झूठी सकारात्मकता नहीं देनी चाहिए। सही? इसके अलावा, मैं फेसबुक, गूगल, याहू आदि जैसी किसी दूसरी साइट पर कैसे पिंगिंग को रैंडमाइज कर सकता हूं। इसके अलावा (मैं किसी भी I / O से बचने की कोशिश कर रहा था) मैं एक लॉग फाइल में लिख सकता हूं जिसके द्वारा मैं डाउनटाइम चेक की गिनती की जांच कर सकता हूं तब तक आगे की जाँच को छोड़ दें जब तक कि साइट नीचे न हो या अधिक समय तक चेक न करें (हर मिनट के बजाय 10mins)। तुम क्या सोचते हो?