GNU/Linux >> Linux Esercitazione >  >> Linux

Come controllare l'accesso a Internet usando lo script bash in Linux?

Utilizzando wget:

#!/bin/bash

wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -eq 0 ]]; then
        echo "Online"
else
        echo "Offline"
fi

Se la scuola spegne effettivamente il router invece di reindirizzare tutto il traffico a una pagina "perché non sei a letto", non è necessario scaricare un'intera pagina Web o inviare intestazioni HTTP. Tutto quello che devi fare è stabilire una connessione e controllare se qualcuno sta ascoltando.

nc -z 8.8.8.8 53

Questo produrrà "Connessione alla porta 8.8.8.8 53 [tcp/domain] riuscita!" e restituire un valore pari a 0 se qualcuno sta ascoltando.

Se vuoi usarlo in uno script di shell:

nc -z 8.8.8.8 53  >/dev/null 2>&1
online=$?
if [ $online -eq 0 ]; then
    echo "Online"
else
    echo "Offline"
fi

#!/bin/bash

INTERNET_STATUS="UNKNOWN"
TIMESTAMP=`date +%s`
while [ 1 ]
 do
    ping -c 1 -W 0.7 8.8.4.4 > /dev/null 2>&1
    if [ $? -eq 0 ] ; then
        if [ "$INTERNET_STATUS" != "UP" ]; then
            echo "UP   `date +%Y-%m-%dT%H:%M:%S%Z` $((`date +%s`-$TIMESTAMP))";
            INTERNET_STATUS="UP"
        fi
    else
        if [ "$INTERNET_STATUS" = "UP" ]; then
            echo "DOWN `date +%Y-%m-%dT%H:%M:%S%Z` $((`date +%s`-$TIMESTAMP))";
            INTERNET_STATUS="DOWN"
        fi
    fi
    sleep 1
 done;

l'output produrrà qualcosa come:

bash-3.2$ ./internet_check.sh
UP   2016-05-10T23:23:06BST 4
DOWN 2016-05-10T23:23:25BST 19
UP   2016-05-10T23:23:32BST 7

il numero alla fine di una riga mostra la durata dello stato precedente, ovvero 19 in su, 7 secondi in meno


Linux
  1. Come utilizzare la password crittografata nello script della shell Bash Linux

  2. Come eseguire il debug di uno script Bash?

  3. Linux:come limitare l'accesso a Internet per un particolare utente sulla LAN utilizzando Iptables in Linux?

  4. Come limitare l'accesso a Internet per un particolare utente sulla lan utilizzando iptables in Linux

  5. Come controllare il sistema operativo e la versione utilizzando un comando Linux

Come controllare l'utilizzo dello spazio su disco in Linux utilizzando Ncdu

Come controllare la velocità di Internet in Linux utilizzando Speedtest CLI

Come sincronizzare i file in due modi utilizzando Osync Script in Linux

Come controllare la velocità di Internet in Linux

Come eseguire uno script Bash

Come posso controllare la sintassi di uno script Bash senza eseguirlo?