monitorar o status da rede para o script systemd

monitorar o status da rede para o script systemd

Estou escrevendo um script de serviço no systemdqual registra o uso da largura de banda a cada 1 hora. Se a rede cair,algodeve informar a este script que a rede está inativa e o script será interrompido temporariamente. Da mesma forma, se a rede estiver ativa novamente,istodeve dizer que a rede está ativa.

Estou usando o bash para escrever script no Ubuntu 15.10

Antes de sugerir uma solução, observe que não preciso de uma solução alternativa para isso, como executar ping em algum servidor.

Responder1

O melhor que você pode fazer é usar os status orientados a eventos já disponíveis no Network Manager.

  1. Crie um arquivo NetStatus.xem /etc:

    sudo nano /etc/NetStatus.up
    
  2. Adicione o seguinte texto:

    Este é o arquivo NetStatus. Se seu nome tiver uma extensão “up”, significa que o status da rede está ativo, enquanto uma extensão “down” significa que está inativo. (Duh!)

  3. Edite /etc/NetworkManager/dispatcher.d/01ifupdowne adicione as declarações em negrito abaixo:

    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 seu próprio script de coleta para verificar a existência /etc/NetStatus.upantes de realmente iniciar a coleta de dados pelo seguinte trecho de código:

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

Por que?

Renomear é a maneira mais rápida de alterar um status em qualquer sistema operacional, incluindo sistemas baseados em disquete, e é extremamente fácil de usar. Eu usei o sistema acima para obter status de servidor, status de backup, status de cálculo de sistemas humildes baseados em MS-DOS até supercomputadores.

informação relacionada