Esiste un modo semplice per verificare la connettività Internet dalla console? Sto cercando di giocare in uno script di shell. Un'idea che mi pare è quella di controllare il codice di risposta HTTP per interpretare se la connessione Internet funziona correttamente. Ma penso che ci debba essere un modo semplice senza la necessità di controllare un sito che non si blocca mai;)wget --spider http://www.google.co.in/
Modifica: sembra che ci possano essere molti fattori che possono essere esaminati individualmente, buona cosa. La mia intenzione al momento è di verificare se il mio blog non è attivo. Ho installato cron per controllarlo ogni minuto. Per questo, sto controllando il codice di risposta HTTP di wget --spider al mio blog. Se non è 200, mi avvisa (credo che questo sarà meglio del semplice ping, poiché il sito potrebbe essere sotto carico pesante e potrebbe scadere o rispondere molto tardi). Ora ieri c'era qualche problema con la mia Internet. La LAN era ben collegata ma non potevo accedere a nessun sito. Quindi continuo a ricevere notifiche poiché lo script non ha trovato 200 nella risposta di wget. Ora voglio assicurarmi che mi mostri una notifica quando ho la connessione a Internet.
Quindi, verificare la connettività DNS e LAN è un po 'eccessivo per me in quanto non ho quella necessità specifica per capire quale sia il problema. Quindi cosa mi consigliate come lo faccio?
Ecco il mio script per continuare a controllare i tempi di inattività del mio blog:
#!/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
In questo modo devo verificare la connettività Internet solo se c'è un problema con il mio codice di risposta del blog. È un po 'pesante (dato che non sto usando il ping) ma non dovrebbe dare falsi positivi. Destra? Inoltre, come posso randomizzare il ping su un sito diverso ogni volta, come facebook, google, yahoo ecc. Inoltre (stavo cercando di evitare qualsiasi I / O) posso scrivere in un file di registro in cui posso controllare il conteggio dei controlli dei tempi di inattività e quindi salta ulteriori controlli fino a quando il sito non è inattivo o causa controlli più lunghi (10 minuti anziché ogni minuto). Cosa pensi?