GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo verificar el acceso a Internet usando el script bash en Linux?

Usando wget:

#!/bin/bash

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

Si la escuela realmente apaga su enrutador en lugar de redirigir todo el tráfico a una página de "¿por qué no estás en la cama?", entonces no hay necesidad de descargar una página web completa o enviar encabezados HTTP. Todo lo que tienes que hacer es establecer una conexión y verificar si alguien está escuchando.

nc -z 8.8.8.8 53

Esto generará "La conexión al puerto 8.8.8.8 53 [tcp/domain] se realizó correctamente". y devolver un valor de 0 si alguien está escuchando.

Si desea usarlo en un script de 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;

la salida producirá algo como:

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

el número al final de una línea muestra la duración del estado anterior, es decir, 19 arriba, 7 segundos abajo


Linux
  1. Cómo usar una contraseña cifrada en Linux Bash Shell Script

  2. ¿Cómo depurar un script Bash?

  3. Linux:¿cómo restringir el acceso a Internet para un usuario en particular en la LAN usando Iptables en Linux?

  4. ¿Cómo agregar un trabajo crontab a crontab usando un script bash?

  5. Cómo restringir el acceso a Internet para un usuario en particular en la LAN usando iptables en Linux

Cómo verificar el uso del espacio en disco en Linux usando Ncdu

Cómo verificar la velocidad de Internet en Linux usando Speedtest CLI

Cómo sincronizar archivos de dos vías usando Osync Script en Linux

Cómo comprobar la velocidad de Internet en Linux

Cómo ejecutar un script Bash

¿Cómo verifico la sintaxis de un script Bash sin ejecutarlo?