GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie überprüfe ich den Internetzugang mit Bash-Skript in Linux?

Mit wget:

#!/bin/bash

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

Wenn die Schule tatsächlich ihren Router ausschaltet, anstatt den gesamten Datenverkehr auf eine „Warum bist du nicht im Bett“-Seite umzuleiten, dann ist es nicht nötig, eine ganze Webseite herunterzuladen oder HTTP-Header zu senden. Sie müssen lediglich eine Verbindung herstellen und prüfen, ob jemand zuhört.

nc -z 8.8.8.8 53

Dies gibt "Verbindung zu 8.8.8.8 Port 53 [tcp/domain] erfolgreich!" aus. und einen Wert von 0 zurückgeben, wenn jemand zuhört.

Wenn Sie es in einem Shell-Skript verwenden möchten:

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;

die Ausgabe erzeugt so etwas wie:

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

Die Zahl am Ende einer Zeile zeigt die Dauer des vorherigen Zustands an, z. B. 19 Sekunden nach oben, 7 Sekunden nach unten


Linux
  1. So verwenden Sie ein verschlüsseltes Passwort in einem Linux-Bash-Shell-Skript

  2. Wie führe ich Linux-Bash-Befehle in einem PERL-Skript aus?

  3. Wie debuggt man ein Bash-Skript?

  4. Linux – Wie beschränkt man den Internetzugang für einen bestimmten Benutzer im LAN mit Iptables in Linux?

  5. So beschränken Sie den Internetzugang für einen bestimmten Benutzer im LAN mit iptables in Linux

So überprüfen Sie die Speicherplatznutzung in Linux mit Ncdu

So überprüfen Sie die Internetgeschwindigkeit unter Linux mit Speedtest CLI

So synchronisieren Sie Dateien in zwei Richtungen mit Osync-Skript in Linux

So überprüfen Sie die Internetgeschwindigkeit unter Linux

So führen Sie ein Bash-Skript aus

Wie überprüfe ich die Syntax eines Bash-Skripts, ohne es auszuführen?