Netzwerkstatus für Systemd-Skript überwachen

Netzwerkstatus für Systemd-Skript überwachen

Ich schreibe ein Serviceskript systemd, das stündlich die Bandbreitennutzung protokolliert. Wenn das Netzwerk ausfällt,etwassollte diesem Skript mitteilen, dass das Netzwerk ausgefallen ist und das Skript vorübergehend angehalten wird. Wenn das Netzwerk wieder aktiv ist,Essollte ihm mitteilen, dass das Netzwerk aktiv ist.

Ich verwende Bash, um Skripte unter Ubuntu 15.10 zu schreiben

Bevor Sie eine Lösung vorschlagen, beachten Sie bitte, dass ich hierfür keine Problemumgehung, wie etwa das Anpingen eines Servers, benötige.

Antwort1

Am besten nutzen Sie die ereignisgesteuerten Status, die bereits im Netzwerk-Manager verfügbar sind.

  1. Erstellen Sie eine Datei NetStatus.xin /etc:

    sudo nano /etc/NetStatus.up
    
  2. Fügen Sie den folgenden Text hinzu:

    Dies ist die NetStatus-Datei. Wenn ihr Name die Erweiterung „up“ hat, bedeutet dies, dass der Netzwerkstatus aktiv ist, während die Erweiterung „down“ bedeutet, dass das Netzwerk inaktiv ist. (Na klar!)

  3. Bearbeiten /etc/NetworkManager/dispatcher.d/01ifupdownund fügen Sie die fettgedruckten Aussagen unten hinzu:

    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. Ändern Sie Ihr eigenes Sammlungsskript, um /etc/NetStatus.upmit dem folgenden Codeausschnitt die Existenz von zu prüfen, bevor Sie tatsächlich mit der Datenerfassung beginnen:

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

Warum?

Eine Umbenennung ist die schnellste Möglichkeit, einen Status auf jedem Betriebssystem zu ändern, einschließlich diskettenbasierter Systeme, und sie ist äußerst einfach zu verwenden. Ich habe das obige System verwendet, um Serverstatus, Sicherungsstatus und Berechnungsstatus von einfachen MS-DOS-basierten Systemen bis hin zu Supercomputern zu erhalten.

verwandte Informationen