Cómo ejecutar un script, dependiendo de la conexión a Internet

Cómo ejecutar un script, dependiendo de la conexión a Internet

A menudo monto una unidad remota usando sshfs. Me encantaría tener este soporte automáticamente. Sin embargo, si lo monto en mi .bashrc o en mis scripts de inicio, el montaje a menudo falla porque aún no se ha establecido mi conexión inalámbrica a Internet.

¿Alguien conoce una manera fácil de ejecutar un script bash cada vez que se realiza la conexión o de montar automáticamente una unidad sshfs?

Respuesta1

Agregue su secuencia de comandos a /etc/network/if-up.d/. Asigne un nombre a su script sin la extensión '.sh'.

Además, después de agregar el script, ejecútelo chmod +x /etc/network/if-up.d/yourscriptnamepara otorgar el permiso necesario.

Asegúrese de que la interfaz de red (por ejemplo, wlan0 o eth0) que debería activar su secuencia de comandos cuando esté activada se mencione en el archivo /etc/network/interfaces.

Respuesta2

Nota del editor: Cuttlefish no se ha actualizado desde 2012 y no se encuentra en ningún repositorio actual de Ubuntu.

ubuntu 12.04

  • InstalarCalamar: Una herramienta sencilla que realiza reflejos en su computadora ejecutando acciones cuando se activan eventos específicos.
  • Abra Sepia y haga clic en New.

    Paso 1

    • Ponle un nombre y cámbialo.Activado por estímuloopción en ENCENDIDO.
    • Haga clic enEstímulo, seleccione la categoríaRedy escribeConéctese a la red inalámbrica. Haga clic en Aceptar.

    Paso 2

    • También puede seleccionar el SSID de la red inalámbrica y tiene la opción de verificarlo o no al iniciar.

    Paso 3

    • Ahora tendrás que especificar una reacción. Ir aReaccióny haga clic en agregar. SeleccionarAplicacionesde la categoría yIniciar aplicación (en modo avanzado)del tipo.

    Etapa 4

    • Ahora especifique el script que desea ejecutar en la opción ejecutable. Incluso puedes pasar parámetros al script.

    Paso 5

    • ¡Y eso es! También asegúrese de agregar Cuttlefish en las aplicaciones de inicio. Ir aEditar > Preferenciasy habilite la opción de inicio automático.

    Paso-6

Respuesta3

Responderé a esta parte de la pregunta del OP: "Me encantaría tener este soporte automáticamente"

Mi herramienta favorita para montar automáticamente recursos compartidos de red es autofs: https://help.ubuntu.com/community/Autofs

AutoFS es mi herramienta preferida para montar mi NAS, para todas mis computadoras portátiles y estaciones de trabajo.

"autofs es un programa para montar directorios automáticamente según sea necesario. Los montajes automáticos se montan únicamente cuando se accede a ellos y se desmontan después de un período de inactividad. Debido a esto, el montaje automático de recursos compartidos NFS/Samba conserva el ancho de banda y ofrece un mejor rendimiento general en comparación con los montajes estáticos mediante fstab."

Respuesta4

systemdparece haberse apoderado del networking hoy en día.

$ networkctl
WARNING: systemd-networkd is not running, output will be incomplete.

IDX LINK             TYPE               OPERATIONAL SETUP
  1 lo               loopback           n/a         unmanaged
  2 enp0s25          ether              n/a         unmanaged
  3 wlo1             wlan               n/a         unmanaged

3 links listed.

También dispone de unidades correspondientes a las interfaces.

$ systemctl list-units |grep wlo1
sys-devices-pci0000:00-0000:00:1c.3-0000:24:00.0-net-wlo1.device                                                        loaded active plugged   Centrino Ultimate-N 6300 (3x3 AGN)
sys-subsystem-net-devices-wlo1.device                                                                                   loaded active plugged   Centrino Ultimate-N 6300 (3x3 AGN)

Aparentemente puedes usarlos en archivos de unidades de servicio. Así que simplemente cree una unidad de servicio para ejecutar su script y use algo así dentro para que se ejecute condicionalmente en la red:

BindsTo=sys-subsystem-net-devices-wlo1.device
After=sys-subsystem-net-devices-wlo1.device

¡Buena suerte! No lo he probado, por lo que "su kilometraje puede variar".

Fuentes:

información relacionada