it-swarm-es.com

¿Cuál es la mejor manera de activar scripts o acciones cuando la computadora está desconectada de la red?

Estoy ejecutando 12.04 LTS. Hay una serie de recursos compartidos que uso que se alojan de forma remota en un servidor local. Cuando me desconecto de la red (por ejemplo, una red o falla del enrutador), me gustaría archivar, renombrar y desarchivar dinámicamente las copias de seguridad del directorio para continuar el uso de estas evaluaciones compartidas hasta que se restablezca la red.

¿Existe un método preferido para obtener estos datos y activar scripts u otras acciones del sistema cuando cambia el estado conectado?

EDITAR: Después de una investigación adicional, veo que existe la posibilidad de hacer esto con udev desde Activando una acción cuando se conecta un volumen específico . Sin embargo, ¿es esta la mejor manera? ¿También hay una herramienta alternativa para udevinfo? No parece ser parte del paquete.

3
Simianspaceman

Cuando se activa o desactiva una interfaz de red, se ejecutan los scripts bajo /etc/network. Puede poner su script en /etc/networking/if-down.d o en /etc/networking/if-post-down.d. El primero se ejecuta con la interfaz aún disponible, mientras que el segundo se ejecuta con la interfaz ya desconectada; por supuesto, la interfaz puede haber sido desactivada automáticamente porque la red local falló, en cuyo caso no podrá utilizar la red incluso desde if-down. El script obtiene información sobre la interfaz de red a través de variables de entorno como se documenta en la página del manual interfaces(5) . Asegúrese de reaccionar solo ante una pérdida de las interfaces que importan.

Si la conexión de red se cae debido a una falla en algún lugar fuera del enlace local, o incluso porque el primer enrutador deja de funcionar correctamente, su máquina no será notificada. Para detectar dicha pérdida de servicio, debe ejecutar algún tipo de servicio de latido que verifique periódicamente que el servidor remoto todavía esté vivo y responda. Aquí no hay una solución única para todos porque los diferentes casos de uso requieren diferentes umbrales entre "la red/servidor es lento" y "la red/servidor está inactivo". Además, determinar si el servidor está vivo es específico de la aplicación; puede ser un ping, o una solicitud HTTP, o un paquete keepalive en una conexión TCP, etc.

3
Gilles