मैं कंसोल में इंटरनेट कनेक्टिविटी की जांच कैसे कर सकता हूं?


31

क्या कंसोल से इंटरनेट कनेक्टिविटी की जांच करने का एक आसान तरीका है? मैं एक शेल स्क्रिप्ट में चारों ओर खेलने की कोशिश कर रहा हूं। एक विचार मुझे लगता है कि इंटरनेट कनेक्शन ठीक काम कर रहा है या नहीं इसकी व्याख्या करने के लिए 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)। तुम क्या सोचते हो?


"इंटरनेट कनेक्टिविटी" की स्पष्ट परिभाषा नहीं है, आप केवल किसी विशिष्ट सेवा या सेवाओं के सेट से कनेक्टिविटी का परीक्षण कर सकते हैं। यदि आपका मतलब "LAN" कनेक्टिविटी है, तो एक अच्छा विकल्प आपके नेटवर्क गेटवे को पिंग करना है।
जोहो पिंटो

आम शब्दों में, मैं इंटरनेट कनेक्टिविटी को परिभाषित करता हूं यदि आप इंटरनेट का उपयोग कर सकते हैं। समस्या के बीच में कुछ भी कर सकते हैं। मुझे इसके बीच अंतर करने की आवश्यकता है यदि इसका ठीक काम है या समस्या के सेट से समस्या है जो जिम्मेदार हो सकती है। मुझे उम्मीद है कि मैंने खुद को स्पष्ट कर दिया है। :)
अशफाम

जवाबों:


29

यह देखना कि विशिष्ट वेबसाइट ऊपर है या नहीं

सबसे पहले, कई अच्छी ऑनलाइन निगरानी सेवाएं उपलब्ध हैं। एक को चुनने के लिए, Phatt में एक लक्ष्य की निगरानी के लिए मुफ्त खाता शामिल है। (डिस्क्लेमर: मैं किसी भी तरह से पीएसडीआई से संबद्ध नहीं हूं )।

दूसरा, wget --spiderअपनी स्क्रिप्ट के लिए उपयोग करना एक अच्छा विचार है। जब आपका कंप्यूटर डाउन हो, या जब आपका DNS सर्वर काम नहीं कर रहा हो, तो आपको कुछ गलत सकारात्मक जानकारी मिलेगी। इसे लागू करने के लिए रिटर्न कोड की जाँच करना सीधा तरीका है:

wget --spider --quiet http://example.com
if [ "$?" != 0 ]; then
  echo "Website failed!" | mail -s "Website down" your_email@provider.tld
fi

फिर भी, इस दृष्टिकोण में कमियां हैं। यदि आपके प्रदाता ने आपके DNS रिकॉर्ड को कैश कर लिया है, लेकिन DNS सर्वर डाउन है, तो अन्य आपकी साइट तक नहीं पहुंच सकते हैं, हालांकि मॉनिटरिंग यह कहती है कि सब कुछ ठीक है। आप hostउदाहरण के लिए, के साथ लघु वर्कअराउंड लिख सकते हैं host example.com <your dns server IP>। यदि DNS सर्वर जवाब नहीं दे रहा है, तो भी त्रुटि वापस आएगी, भले ही OpenDNS या आपके स्वयं का प्रदाता का DNS सर्वर ठीक काम करता हो।

जाँच कर रहा है कि क्या इंटरनेट काम कर रहा है

हर मामले में इसे संभालने का वास्तव में आसान तरीका नहीं है।

उदाहरण के लिए आप ping -c1कई प्रसिद्ध साइटों (उदाहरण के लिए www.google.com, facebook.com और ping.funet.fi) पर चल सकते हैं और यह निर्धारित करने के लिए रिटर्न कोड की जांच कर सकते हैं कि कोई गंतव्य उपलब्ध है या नहीं। आप चर का उपयोग करके स्वचालित रूप से रिटर्न कोड की जांच कर सकते हैं $?। पैरामीटर -c1पिंग पैकेटों की संख्या को एक तक सीमित कर रहा है।

जब कोई लॉगिन गेटवे जो सभी पिंग्स और HTTP अनुरोधों को पुनर्निर्देशित करता है, तो आप कुछ सार्वजनिक वाईफाई के साथ समस्याओं का सामना कर सकते हैं। यदि ऐसा है, तो आप पिंग प्रतिक्रियाएं और गैर-त्रुटि HTTP स्थिति कोड प्राप्त कर सकते हैं, तब भी जब आप किसी अन्य साइटों तक नहीं पहुंच सकते।

यदि आप केबल राज्य की जांच करना चाहते हैं, तो आप उपयोग कर सकते हैं

sudo ethtool eth0

आउटपुट (अंश) से:

Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
Link detected: yes

हालांकि, यह नहीं बता रहा है कि क्या आपके पास वास्तव में कनेक्टिविटी है या नहीं, बस केबल जुड़ा हुआ है या कुछ दूसरे छोर पर है।


यह मेरा सेटअप के लिए पूरी तरह से है, हमेशा-चालू ईथरनेट पर काम कर रहा। लेकिन खुशी है कि आप ने कहा कि यह कैसे कुछ मामलों में सही ढंग से काम नहीं करेगा। इसके अलावा, मैं पिंग विश्वास तेजी से wget से होगा। तुम क्या सोचते हो? और अगर मैं कहीं भी 200 स्टेटस कोड के लिए जाँच कर रहा हूँ, तो मैं इसे केवल पिंग करूँगा। सही? या वहाँ कुछ है कि मुझे पता होना चाहिए है?
Ashfame

2
क्योंकि दूसरे छोर आप के लिए नाराज नहीं होगा पिंग, तेज, और बेहतर है। पिंग बहुत सुरक्षित है, लेकिन फिर भी इस बात की गारंटी नहीं है कि आप वेब पृष्ठ खोल सकते। इसके अलावा, यह संभव है कि फ़ायरवॉल पिंग को रोक रहा हो लेकिन HTTP अनुरोधों को अनुमति दे रहा हो।
ओली

1
यदि आपके पास नेट कनेक्टिविटी है लेकिन टूटे हुए डीएनएस हैं तो 4.2.2.2 जैसे प्रसिद्ध डीएनएस सर्वर को पिंग करना भी उपयोगी है।
djeikyb

DNS के लिए जाँच आप इस पाठ्यक्रम उपयोग की कर सकते हैं host(DNS क्वेरी)। यह बहुत तेजी से भी है।
ओली

आपकी प्रतिक्रिया @Olli और @djeikyb मैं सवाल को अद्यतन किया है, तो कृपया एक बार देख ले के लिए धन्यवाद
Ashfame

7

मैं इस पद्धति का उपयोग कर रहा हूँ ...

अगर [[ "$ (पिंग -c 1 8.8.8.8 | ग्रेप '100% पैकेट क्षति')" = ""]!]; फिर
    गूंज "इंटरनेट मौजूद नहीं है"
    बाहर निकलें 1
अन्य
    गूंज "इंटरनेट मौजूद है"
    wget www.site.com
फाई

मैं के लिए अलग-अलग परिणाम मिल गया ping -c 1 8.8.8.8और ping -c 1 www.google.com। यह कैसा है?
मर्सोज़

2
ध्यान दें कि यह चीन और अन्य देशों में विफल होगा जो Google को रोकते हैं
टॉम जे नोवेल

7

मैंने अभी उपयोग किया है

nm-online

जो तब तक रुकता है जब तक कि नेटवर्क मैनेजर नेटवर्क मैनेजर द्वारा मौजूद न हो। अच्छा काम किए। आप इसके साथ अन्य सामान भी कर सकते हैं।


6

यह देखने के लिए कि क्या साइट ऊपर है, आमतौर पर निगरानी उपकरण की तरह किया जाता है nagios। यह लगातार साइट की निगरानी करेगा, और आपको आउटेज की सूचना दे सकता है।

यह जाँचने पर कि क्या इंटरनेट कमांड लाइन से है, मैं कई चरणों से गुजरता हूं:

  • चेक इंटरनेट ऊपर है ping google.com(DNS और ज्ञात पहुंच स्थल की जाँच करता है)।
  • चेक वेब साइट का उपयोग wgetया w3mपेज लाने के लिए है।

यदि इंटरनेट का निदान नहीं किया जाता है।

  • चेक गेटवे पिंगेबल है। (गेटवे पते के लिए ifconfig की जाँच करें।)
  • DNS सर्वर की जांच करें। (पते के लिए /etc/resolv.conf की जाँच करें।)
  • यह देखने के लिए जांचें कि क्या फ़ायरवॉल अवरुद्ध है। (मैं लॉग ब्लॉक के रूप में जाँच / var / log / syslog।)

यदि इंटरनेट चालू है, लेकिन साइट नीचे दिखाई देने वाली साइट के साथ w3m http://isup.me/example.comबदलने के example.comसाथ चेक डाउन है। यदि आपने w3m ब्राउज़र स्थापित नहीं किया है, तो wget, lynx, या जो आपके पास कभी उपलब्ध कमांड लाइन का उपयोग करें।


तुम्हारे सुझाव के लिए धन्यवाद! जब मेरी साइट डाउन होती है तो क्या मेरी स्क्रिप्ट मुझे जाँचने और सचेत करने की मूल आवश्यकता को कवर करती है? और कुछ इंटरनेट कनेक्टिविटी की समस्या होने पर यह शांत हो जाएगा
Ashfame

ऐसा लगता है कि आपकी स्क्रिप्ट वही करेगी जो आप चाहते हैं। यदि आप कथन में wget कमांड को शामिल कर सकते हैं if ! wget --spider http:///example.com; then
बिलहोर

आपका मतलब है कि wget हमेशा 200 HTTP response कोड के लिए 1 लौटाता है?
20

मेरा मतलब है कि परीक्षण परीक्षण [ $? != 0 ]के समान ही है ! command। wget को सफलता पर 0 वापस करने के लिए प्रलेखित किया गया है और विफलता के लिए 0 नहीं। अगर पहचान से व्यवहार करता है जो कभी भी आप इसे कोड करते हैं। यदि कोई 200 प्रतिक्रिया पर विफलता लौटाता है, तो परीक्षण आपके लिखने के तरीके को विफल कर देगा। वही अगर यह 200 के अलावा एक प्रतिक्रिया कोड के लिए 0 लौटाता है।
बिलबोर्ड

धन्यवाद! यह स्क्रिप्ट को छोटा और समझने में आसान बना देगा।
Ashfame

4

यह इंटरनेट कनेक्टिविटी के लिए परीक्षण करने के लिए उपयोग की जाने वाली शेल स्क्रिप्ट है:

alarm.sh

#! /bin/bash

if curl --silent --head http://www.google.com/ |
    egrep "20[0-9] Found|30[0-9] Found" >/dev/null
then
    echo Internet status: OK
else
    echo Internet status: ERROR
    mpg321 alarm.mp3 &> /dev/null
fi
sleep 60
clear

./alarm.sh

आपको कर्ल और mpg321 स्थापित करना होगा

sudo apt-get install curl mpg321

यदि आप श्रव्य अलार्म कार्यक्षमता चाहते हैं, तो आपको एक ही फ़ोल्डर में एक .mp3 ध्वनि फ़ाइल का नाम बदलकर अलार्म की आवश्यकता होगी। अंत में अपनी आवश्यकताओं के लिए वेबसाइट URL और egrep कॉन्फ़िगर करें।


यह पूरी तरह से तब भी काम करता है जब उपयोगकर्ता एक कैप्टिव पोर्टल के पीछे होता है और लॉग इन नहीं होता है।
अशर हसन

आप egrep -qइसके बजाय का उपयोग कर सकते हैंegrep ... > /dev/null
wjandrea

सिर्फ एक whileलूप का उपयोग करने के बजाय स्क्रिप्ट खुद को क्यों बुलाती है ?
wjandrea

ओह रुको, यह खुद को फोन नहीं करता है। यह alarm.shwd नामक एक स्क्रिप्ट को कॉल करता है , इसलिए यदि आप इस स्क्रिप्ट को किसी भिन्न dir से कॉल करते हैं, तो यह या तो त्रुटि करेगा, या यदि alarm.shwd में स्क्रिप्ट कहा जाता है, तो यह इसके बजाय कॉल करेगा। तो यह बुरा अभ्यास है। आप "$0"इसके बजाय उपयोग कर सकते हैं , लेकिन एक whileलूप बेहतर होगा।
wjandrea

"लिपि केवल थोड़ी देर के लूप का उपयोग करने के बजाय खुद को क्यों बुलाती है?"
01BTC10

2

जाँच कर रहा है कि क्या इंटरनेट काम कर रहा है

sudo nm-tool | grep "State: connected" | wc -l

आउटपुट (अंश) से:

1 #System is connected to internet

हालांकि, जैसा कि दूसरों ने बताया है, यह नहीं बता रहा है कि क्या आपके पास वास्तव में कनेक्टिविटी है या नहीं। उदाहरण के लिए। आप राउटर से कनेक्ट हो सकते हैं और राउटर जरूरी नहीं कि इंटरनेट से जुड़ा हो।


2
nm-toolUbuntu 15.04+ में हटा दिया गया है, लेकिन आप nmcliइसके बजाय उपयोग कर सकते हैं । जैसे[[ $(nmcli -f STATE -t g) = connected ]]
छह

@ nmcli -f STATE -t nmअच्छी बात यह है कि वेब साइटों से स्वतंत्र है!
कुंभ राशि

1
ध्यान दें nm-toolऔर nmcliआप केवल यह बताएंगे कि आप स्थानीय नेटवर्क से जुड़े हैं या नहीं , यानी आप अपने घर के वाईफाई / ईथरनेट से जुड़े हैं या नहीं। यह आपको यह नहीं बताएगा कि आप अपने स्थानीय नेटवर्क, यानी इंटरनेट से परे किसी चीज़ तक पहुँच सकते हैं या नहीं।
सर्गी कोलोडियाज़नी

1

मैं इस विधि का उपयोग कर रहा हूँ:

if curl -s --head  --request GET www.google.com | grep "200 OK" > /dev/null ; then
    echo "Internet is present"
else
    echo "Internet isn't present"
fi

यह एक प्रसिद्ध वेबसाइट से जुड़ने की कोशिश करेगा और अगर यह इससे जुड़ सकता है तो हम मान लेंगे कि इंटरनेट है।


0

मुझे एक ही सवाल के साथ मदद की ज़रूरत थी, और मुझे अपना जवाब इस तरह मिला:

echo $(nm-online) $? connection problems

यह कैसे काम करता है?
wjandrea

यह केवल nm-onlineकमांड की स्थिति (एक चरित्र) की जांच कर रहा है ... यदि सब कुछ ठीक है तो यह 0 पर वापस आ जाएगा। सभी UNIXगोले में सामान्य ।
एंटोनियो

0

यह जाँचना कि क्या इंटरनेट काम कर रहा है, इतना तुच्छ नहीं है। पिंग ICMP है, इसलिए यह वेब प्रॉक्सी के डाउन होने पर भी काम कर सकता है। यदि आप IP के साथ परीक्षण करते हैं तो DNS के साथ भी कुछ ऐसा ही होता है।

चूंकि मेरा इंटरनेट कनेक्शन अस्थिर है इसलिए मैंने यह स्क्रिप्ट ( इस पर आधारित ) बनाई जो मुझे कॉल करने के लिए एक सौम्य कॉर्ड ध्वनि बनाता है, और इंटरनेट कनेक्शन वापस आने पर उबंटू अधिसूचित का भी उपयोग करता है:

#!/bin/bash

hash play 2>&- || { echo >&2 "I require «play» but it's not installed. Try apt-get install sox. Aborting."; exit 1; }

WGET="`which wget`"
URL="http://www.google.com"
delay=3;
noConnectionMessage="No connection, trying again in $delay seconds...";
connectionMessage="WE HAVE INTERNET! :) Trying again in $delay seconds...";

echo "INTERNET TESTER: Type Ctrl+C to quit";
rm --force /tmp/index.site

function playSound {
    time=1;    # Time played
    if [ `sox --version| grep -oP "v[0-9.]+" | sed "s/[v.]//g"` -lt 1431 ]; then    #analize sox version, if greater than v14.3.1 can use pluck
        play -q -n synth $time sine;
    else
        play -q -n synth $time pluck $1;
        #for i in G4 G4 G4 E4;do play -n synth 0.1 pluck $i repeat 2;done    # You can play with something like this also :) (first three notes from Beethoven 5th symphony)
    fi
}

while [ 1 -eq 1 ]; do
    $WGET -q --tries=10 --timeout=2 $URL -O /tmp/index.site &> /dev/null
    if [ ! -s /tmp/index.site ];then
        echo $noConnectionMessage;
        #playSound E2
        sleep 1;
    else
        #~ zenity --warning --text "ADDRESS is back"
        notify-send -i "notification-network-wireless-full" "Connection state:" "$connectionMessage";
        echo $connectionMessage;
        playSound E3
    fi
    sleep $delay;
done

exit 0;

0

मैं एक ऐसी स्क्रिप्ट की तलाश में था, जो मेरे इंटरनेट कनेक्शन का लगातार परीक्षण करे, जो कि मेरे सर्वर के उठने पर शुरू होगी और मैंने इसे बनाया:

  1. सबसे पहले, fping स्थापित करें

    apt-get install fping
    
  2. निम्नलिखित सामग्री के साथ /etc/init.d फ़ोल्डर में एक init स्क्रिप्ट बनाएं (मैंने इसे testcon कहा जाता है)

    #!/bin/bash
    
    PIDFILE=/var/run/testcon.pid
    
    . /lib/lsb/init-functions
    
    case "$1" in
      start)
            log_daemon_msg "Starting internet connection tester"
            /etc/init.d/testcond &
            echo $! > $PIDFILE
            log_end_msg $?
        ;;
      stop)
            log_daemon_msg "Stopping internet connection tester"
            PID=$(cat $PIDFILE)
            kill -9 "$PID"
            log_end_msg $?
        ;;
      *)
        echo "Usage: /etc/init.d/testcon {start|stop}"
        exit 1
        ;;
    esac
    
    exit 0
    
  3. निम्नलिखित सामग्री के साथ /etc/init.d फ़ोल्डर में एक स्क्रिप्ट बनाएं (मैंने इसे टेस्टकॉन्ड कहा है)

    #echo Computer starting or testing daemon init
    while [ "$itest" == "" ] 
    do
        #wait 5 seconds 
        sleep 5
        itest=$(fping 8.8.8.8 | grep alive)
    done
    date | mail -s "Server is up and Internet is online" your_email@gmail.com
    
    #loop forever
    while [ "1" == "1" ] 
    do
        itest=$(fping 8.8.8.8 | grep alive)
        #if internet is down
        if [ "$itest" == "" ] 
        then
            #echo Internet is down
            #log time it was found down
            current_time=$(date)
            echo "Internet was found down @ $current_time" >> /mnt/data/Server/internet_log.txt
            #loop until it is back
            while [ "$itest" == "" ] 
            do
                #wait 60 seconds 
                sleep 60
                itest=$(fping 8.8.8.8 | grep alive) # test the internet
            done
            #when it is back
            current_time=$(date)
            echo "Internet is back        @ $current_time" >> /mnt/data/Server/internet_log.txt
            body=$(tail -2 /mnt/data/Server/internet_log.txt)
            echo "$body" | mail -s "Internet is back online" your_email@gmail.com
        fi
        #echo Internet is online
        #wait 60 seconds
        sleep 60
            done
    
  4. फिर मैं स्टार्ट-अप में जोड़ने के लिए नीचे कमांड चलाता हूं:

    sudo update-rc.d testcon defaults
    sudo update-rc.d testcon enable
    
  5. रीबूट


0

मुझे अपने Broadcom BCM94331CDचिप द्वारा वाई-फाई कनेक्शन की यादृच्छिक बूंदों का सामना करना पड़ा । मैंने निम्नलिखित बैश स्क्रिप्ट (अनंत लूप) को तैयार किया है, अगर इंटरनेट वाई-फाई कनेक्शन चालू है और चल रहा है तो प्रत्येक सेकंड की जाँच करें। यहां प्रस्तावित अन्य कमांड लाइन एक स्थिति के साथ बंद होने से पहले कम से कम 5 से 10 सेकंड तक इंतजार करेगी ping। इस बीच मैं एक निश्चित समाधान के लिए भी देख रहा हूँ।

Askubuntu पर परिणाम से, मैं bcmwl-kernel-sourceपैकेज का उपयोग के रूप में मैं firmware-b43-installerऔर उपयोग करने के लिए शुद्ध करना होगा b43-fwcutter

उनके सुझावों (उपरोक्त) के लिए सभी का धन्यवाद।

इस स्क्रिप्ट को स्टार्ट-अप कार्यक्रमों में जोड़ा जाना चाहिए और super userसाथ ही चलाने के लिए विशेषाधिकार की आवश्यकता नहीं है ।

#!/bin/bash
#

# Check if Wi-Fi is disabled e.g. 'out of range'
# If so quickly re-enable Wi-Fi
# Due to a problem with Broadcom proprietary driver in package firmware-b43-installer

# Script is part of Start-Up programs
# Stored in /usr/local/bin/
# Infinite loop checking every second if Wi-Fi is up and running

while true; do
  # https://askubuntu.com/questions/27954/how-can-i-check-internet-connectivity-in-a-console
  if [[ $(nmcli -f STATE -t g) != 'connected' ]]; then
    # Disable and Re-Enable Wi-Fi as the Wi-Fi is now 'out of range' (disconnected)
    nmcli radio wifi off
    nmcli radio wifi on
  fi
  sleep 1
done
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.