oggy01
Goto Top

Cronjob Netzwerk Ping, nur bei Fehler eine Nachricht senden

Hallo,
ich mochte einen Cronjob erstellen, der in regelmäßigen Abständen die Container und andere PC im Netzwerk per Ping auf Erreichbarkeit prüft.
Das ist erstmal kein Problem, aber wie kann ich diesen dazu bringen, dass er nur bei 100% Paketverlust eine Meldung sendet?
Ich würde das über NTFY machen wollen.

MfG
Oggy01

Content-ID: 669118

Url: https://administrator.de/contentid/669118

Ausgedruckt am: 23.11.2024 um 08:11 Uhr

13402570474
Lösung 13402570474 30.10.2024 aktualisiert um 12:48:49 Uhr
Goto Top
Moin,

#!/bin/bash

# Liste der IPs oder Hostnamen der Computer und Container
TARGETS=("192.168.1.10" "192.168.1.20" "container1" "container2")  

# Ping-Intervall in Sekunden
INTERVAL=5

# Funktion für die Aktion bei 100 % Verlust
handle_failure() {
    local target=$1
    echo "100% Paketverlust für $target. Führe weitere Aktionen aus..."  
    # Hier können zusätzliche Aktionen eingefügt werden, wie zum Beispiel:
    # - Benachrichtigung per E-Mail senden
    # - Neustart des Containers
    # - Log-Eintrag schreiben
}

# Endlosschleife
while true; do
    for target in "${TARGETS[@]}"; do  
        # Pinge das Ziel und analysiere den Verlust
        if ping -c 4 -W 2 "$target" | grep -q "100% packet loss"; then  
            handle_failure "$target"  
        else
            echo "$target ist erreichbar."  
        fi
    done

    # Warte bis zum nächsten Durchlauf
    sleep "$INTERVAL"  
done

Sieht auf den ersten Blick gut aus. Dürfte hinhauen. Wie Du ein Bashscript speicherst und ausführbar machst, muss man vermutlich nicht erklären.

Gruß

Edit: Danke für die Anpassung. Man merke: man darf <#codeTags> innerhalb <#ai> verwenden. gefällt mir. Wenn man noch angeben kann, von welcher KI das stammt, wäre das nett face-smile
em-pie
em-pie 30.10.2024 aktualisiert um 06:59:30 Uhr
Goto Top
Moin

@Oggy01
Wie wäre es, wenn du eine Monitoring-Lösung ala Zabbix, Nagios, Icinga, CheckMK, … etablierst

Genau das machen die und noch viel mehr:
  • prüfen, ob Zertifikate noch gültig sind
  • Ausreichend Platz auf den Systemen ist
  • Bestimmte Dienste laufen

Und pfiffig wäre es auch, Abhängigkeiten zu prüfen. Wenn - in deinem Fall - der DockerHost selbst futsch ist, müssen mir nicht noch 738362 Mails zugehen, dass der einzelne Docker nicht läuft.
michi1983
michi1983 30.10.2024 um 08:07:26 Uhr
Goto Top
Hallo,

oder du nutzt sowas, ist im Handumdrehen aufgesetzt.

Gruß
Oggy01
Oggy01 30.10.2024 um 08:15:14 Uhr
Goto Top
Danke, passt soweit ganz gut, nur läuft das Skript nach dem Start in einer Endlosschleife und Pingt im Sekundentakt.
War jetzt nur ein schneller Test aber zu 99% schon perfekt.
13402570474
13402570474 30.10.2024 aktualisiert um 08:43:41 Uhr
Goto Top
Danke, passt soweit ganz gut, nur läuft das Skript nach dem Start in einer Endlosschleife und Pingt im Sekundentakt.
Na Du wirst doch das
while true
anpassen können?

Pingt im Sekundentakt
Was solls denn sein?

ping -c 4 -W 2
-c 4
= maximal 4 Pakete
-W 2
= Wartet 2 Sekunden auf Antwort. Kommt keine, heißt es Timeout

Mit
-i
lässt sich das Intervall setzen. Also
-i 10
ergäbe: Ping alle 10 Sekunden.

man ping

Gruß
aqui
aqui 30.10.2024 um 09:17:37 Uhr
Goto Top
Mit hping3 kann man es sogar noch komfortabler machen und die Dienste Erreichbarkeit pingen. face-wink
https://linux.die.net/man/8/hping3
Oggy01
Oggy01 30.10.2024 um 10:23:55 Uhr
Goto Top
Danke, ich habe das Script angepasst.
Wenn das Script gestartet wird, läuft es genau 1x durch und meldet mit über ntfy genau die Container/VMs welche nicht erreichbar sind.

Ein Cronjob übernimmt den Rest.

Danke nochmal für die Antworten (auch von den anderen Helfern).
em-pie
em-pie 30.10.2024 aktualisiert um 12:21:09 Uhr
Goto Top
Edit: Danke für die Anpassung. Man merke: man darf <#codeTags> innerhalb <#ai> verwenden. gefällt mir. Wenn man noch angeben kann, von welcher KI das stammt, wäre das nett face-smile

Guckst du
hier: Wie gehen wir in Zukunft mit KI-Inhalten um?
hier: https://administrator.de/releasenotes/ (20241028-01)
hier: Diskussionsrichtlinien - die Regeln zu unseren Inhalten