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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 669118
Url: https://administrator.de/contentid/669118
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
8 Kommentare
Neuester Kommentar
Moin,
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
Quelle: ChatGPT KI
#!/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
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:
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.
@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.
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
Pingt im Sekundentakt
Was solls denn sein?ping -c 4 -W 2
-c 4
-W 2
Mit
-i
-i 10
man ping
Gruß
Mit hping3 kann man es sogar noch komfortabler machen und die Dienste Erreichbarkeit pingen.
https://linux.die.net/man/8/hping3
https://linux.die.net/man/8/hping3
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
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