monitorear el estado de la red para el script systemd

monitorear el estado de la red para el script systemd

Estoy escribiendo un script de servicio systemdque registra el uso del ancho de banda cada hora. Si la red se cae,algodebería indicarle a este script que la red está inactiva y que el script se detendrá temporalmente. De manera similar, si la red vuelve a funcionar,éldebería decirle que la red está activa.

Estoy usando bash para escribir scripts en Ubuntu 15.10

Antes de sugerir una solución, tenga en cuenta que no necesito una solución alternativa para esto, como hacer ping a algún servidor.

Respuesta1

Lo mejor que puede hacer es utilizar los estados controlados por eventos que ya están disponibles en Network Manager.

  1. Crea un archivo NetStatus.xen /etc:

    sudo nano /etc/NetStatus.up
    
  2. Agregue el siguiente texto:

    Este es el archivo NetStatus. Si su nombre tiene una extensión "arriba", significa que el estado de la red está activo, mientras que una extensión "abajo" significa que está inactivo. (¡Eh!)

  3. Edite /etc/NetworkManager/dispatcher.d/01ifupdowny agregue las declaraciones en negrita a continuación:

    case "$2" in
        up|vpn-up)
            export MODE="start"
            export PHASE="post-up"
            exec run-parts /etc/network/if-up.d
            mv /etc/NetStatus.down /etc/NetStatus.up
            ;;
        down|vpn-down)
            export MODE="stop"
            export PHASE="post-down"
            exec run-parts /etc/network/if-post-down.d
            mv /etc/NetStatus.up /etc/NetStatus.down
            ;;
    
  4. Modifique su propio script de recopilación para verificar la existencia de /etc/NetStatus.upantes de comenzar a recopilar datos mediante el siguiente fragmento de código:

    if [ -e /etc/NetStatus.up ] ; then
      #move your existing collection in here
    fi
    

¿Por qué?

Cambiar el nombre es la forma más rápida de cambiar el estado en cualquier sistema operativo, incluidos los sistemas basados ​​en disquetes, y es extremadamente fácil de usar. He usado el sistema anterior para tener estados de servidor, estados de respaldo, estados de cálculo desde sistemas humildes basados ​​en MS-DOS hasta súper computadoras.

información relacionada