GNU/Linux >> Znalost Linux >  >> Linux

Jak zkontrolovat přístup k internetu pomocí bash skriptu v linuxu?

Pomocí wget:

#!/bin/bash

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

Pokud škola skutečně vypne svůj router namísto přesměrování veškerého provozu na stránku „proč nejsi v posteli“, pak není potřeba stahovat celou webovou stránku ani odesílat HTTP hlavičky. Jediné, co musíte udělat, je navázat spojení a zkontrolovat, zda někdo poslouchá.

nc -z 8.8.8.8 53

To vypíše "Připojení k portu 8.8.8.8 53 [tcp/doména] úspěšné!" a vrátí hodnotu 0, pokud někdo poslouchá.

Pokud jej chcete použít ve skriptu shellu:

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;

výstup vytvoří něco jako:

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

číslo na konci řádku ukazuje trvání předchozího stavu, tj. 19 nahoru, 7 sekund dolů


Linux
  1. Jak ladit Bash skript?

  2. Linux – Jak omezit přístup k internetu pro konkrétního uživatele v síti LAN pomocí Iptables v Linuxu?

  3. Jak zkontrolovat podřetězec v Shell Script Bash?

  1. Jak zkontrolovat syslog v Bash na Linuxu?

  2. Jak ukončit terminál Linux pomocí skriptu Python?

  3. Jak přidat úlohu crontab do crontab pomocí bash skriptu?

  1. Jak používat šifrované heslo ve skriptu Linux Bash Shell

  2. Jak spustit příkazy bash Linuxu ve skriptu PERL?

  3. Jak zkontrolovat OS a verzi pomocí příkazu Linux