Ich versuche ein Skript zu schreiben, das alle Hosts in meinem LAN auflistet (es gibt ungefähr 20 davon) und den Ping-Status neben jeden Host schreibt. Ich habe die DHCP-Leases-Datei, habe also alle IPs (z. B. 10.0.0.1, 10.0.0.2 usw.) und benötige nur den Ping-Status für jeden Host.
Also startet mein Skript einen einzelnen Ping für jeden Host:
ping -c 1 10.0.0.1
Wenn ein Host offline ist, dauert der Ping-Vorgang leider sehr lange. Ich habe überprüft man ping
, dass es anscheinend zwei Optionen gibt, um die Zeitüberschreitungsverzögerung einzustellen: -w deadline
und -W timeout
. Ich glaube, ich interessiere mich für Letzteres.
Also habe ich Folgendes versucht:
ping -c 1 -W 1 10.0.0.1
Das Warten auf eine Sekunde pro Offline-Host ist jedoch immer noch zu lang. Ich habe versucht, einen Wert unter einer Sekunde festzulegen, aber der Parameter scheint überhaupt nicht berücksichtigt zu werden:
ping -c 1 -W 0.1 10.0.0.1 # timeout option is ignored, apparently
Gibt es eine Möglichkeit, das Timeout auf einen niedrigeren Wert einzustellen? Wenn nicht, gibt es Alternativen?
Bearbeiten
- Das Betriebssystem ist Debian Lenny.
- Die Hosts, die ich anpingen möchte, sind tatsächlich Zugriffspunkte. Sie befinden sich im selben VLAN und Subnetz wie die Benutzer (zur Vereinfachung der Bereitstellung und des Austauschs). Aus diesem Grund möchte ich nicht das gesamte Subnetz scannen (
ping -b
zum Beispiel mit einem ).
Bearbeiten Sie # 2
Ich habe die fping
Lösung angenommen (danke für alle anderen Antworten). Dieser Befehl macht genau das, wonach ich gesucht habe:
fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4
Dieser Befehl dauert höchstens 500 ms und zeigt den Ping-Status aller Hosts gleichzeitig an:
10.0.0.1 : [0], 84 bytes, 5.71 ms (5.71 avg, 0% loss)
10.0.0.2 : [0], 84 bytes, 7.95 ms (7.95 avg, 0% loss)
10.0.0.3 : [0], 84 bytes, 16.1 ms (16.1 avg, 0% loss)
10.0.0.4 : [0], 84 bytes, 48.0 ms (48.0 avg, 0% loss)
10.0.0.1 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 5.71/5.71/5.71
10.0.0.2 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 7.95/7.95/7.95
10.0.0.3 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 16.1/16.1/16.1
10.0.0.4 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 48.0/48.0/48.0
Unter Debian Lenny ist die Installation trivial:
aptitude update
aptitude install fping
ping
Verwenden Sie den-i
Schalter, wenn Sie nach einer entsprechenden Lösung suchen .Wenn Sie 0.1 verwenden möchten, müssen Sie es als root ausführen
Es müssen keine zusätzlichen Dienstprogramme heruntergeladen werden.
quelle
ping
auf eine Antwort gewartet wird - es werden nur schnellere aufeinanderfolgende PingsSie können eine kurze Zeitüberschreitung mit dem
timeout
Befehl unter Ubuntu / Debian einstellen :quelle
timeout (GNU coreutils) 8.4
.DURATION is a floating point number with an optional suffix: 's' for seconds (the default),
... In meinenman timeout
FallberichtenGNU coreutils 8.26
. BWT, ich benutze Ubuntu 17.04.Ich würde nmap für diese Aufgabe verwenden.
nmap -sP --max-retries=1 --host-timeout=1500ms 10.0.0.1
Weitere Informationen hierzu finden Sie in der nmap-Dokumentation .
quelle
Möglicherweise möchten Sie das Arp-Ping-Tool überprüfen, wenn sich alle Ihre Hosts im physischen LAN befinden. Es führt dasselbe aus, verwendet jedoch Layer-2-Arp-Pakete, um das 'Ping' auszuführen. Sie können eine Kombination aus Arpping und ICMP-Ping oder TCP-Ping verwenden, um den Fehler zu ermitteln. Ein Beispiel ist ein Absturz des TCP-Stacks. Obwohl dies heutzutage selten vorkommt, können wir feststellen, dass ein TCP-Stapel eines Rechners abgestürzt ist, da der Rechner nicht auf Ping reagiert, jedoch auf ARP (ein anderer Code auf dem Host). .
mit einer kombination von arpping, tcpping und icmp ping können sie herausfinden, ob der dienst auf der maschine abgestürzt ist, der tcp-stapel abgestürzt ist oder die maschine vollständig abgestürzt ist. Wenn Sie Ethernet-Switches verwaltet haben, können Sie physische Verbindungsdaten abrufen, die Aufschluss darüber geben, ob der Computer tatsächlich eingeschaltet ist oder physisch vom Stromnetz getrennt wurde. Wir hatten eine Situation, in der Maschinen (Clients in öffentlichen Räumen) ausgeschaltet waren. Wir sammelten diese Daten und die gesendeten Wake-on-LAN-Pakete, um die Maschinen einzuschalten. :-)
Was auch immer Sie für Lösungen entwickeln, wenn Ihr Netzwerk ausgelastet ist, denken Sie daran, eine Art von Qo zu implementieren, damit Ihre Überwachungspakete Priorität im Netzwerk haben. Der Verlust von Messpaketen aufgrund von Netzwerküberlastung kann zu Fehlalarmen führen. Wenn Sie qos zum Überwachen von Paketen verwenden, müssen Sie über das Sammeln von Daten zur Netzwerknutzung nachdenken.
So können Sie Ihre Überwachungslösung so komplex oder einfach gestalten, wie Sie möchten. Wir finden, dass selbst das elementarste Überwachungssystem ein Schritt in die richtige Richtung ist, zumindest haben einige Administratoren die Maschinen im Auge :-).
Viel Glück!
quelle
@ jordon-bedwell hat einen tollen vorschlag.
@ laszlo-valko https://stackoverflow.com/questions/20359487/why-does-ping-not-timeout-in-linux erklärt, dass Ping-Timeouts erst starten, nachdem die IP-Adresse ermittelt wurde. Wenn Sie eine DNS verwenden und Ihre Workstation offline ist, kann ping die IP-Adresse nicht ermitteln und scheint daher ungefähr 20 Sekunden oder länger zu warten, bevor false zurückgegeben wird.
Die Verwendung des Linux-Timeout-Tools bietet mehr Kontrolle beim Ausführen von Ping mit einem Domain-Namen.
Danke Leute
quelle
Verwenden Sie den Schalter -w sowohl unter Windows als auch unter Debian.
Auf diese Weise können Sie schnell überprüfen, ob das Gerät überhaupt reagiert, vorausgesetzt, es reagiert in weniger als der angegebenen Zeit in Sekunden.
quelle
Wenn Sie Ihr Subnetz (oder einen Teil davon) scannen können, ohne Sicherheitsalarme auszulösen, und sich nicht um ein bisschen zusätzliche Daten kümmern, ist Angry IP Scanner schnell und kostenlos. Sie können per Mausklick nach Status sortieren und detailliertere Informationen bereitstellen .
quelle
Warum nicht für jeden Host gleichzeitig Ping im Hintergrund starten und in eine temporäre Datei ausgeben? Gehen Sie dann für eine Sekunde in den Ruhezustand, beenden Sie alle noch ausgeführten Ping-Prozesse und lesen Sie die Dateien, um die Ausgabe zu erfassen.
quelle
Das Timeout ist ein ganzzahliger Wert, der angibt, wie lange und wie weit das Paket gesendet werden kann. Werte unter 1 sind bedeutungslos. Der Wert 1 gibt an, dass Sie nur unmittelbare Nachbarn anpingen.
Die einzige Möglichkeit, die Dinge zu beschleunigen, besteht darin, eine Hintergrundüberprüfung durchzuführen und die Ergebnisse zu sammeln. Dies ist, was Werkzeuge wie Nagios tun.
quelle
Sie könnten so etwas versuchen. Die Laufzeit beträgt jedoch 15 Minuten.
quelle
nmap
wäre das richtige Werkzeug für den Job.Versuche dies:
quelle
fping
?Ping hat die Optionen [-t Timeout] und [-W Wartezeit], so dass Sie Folgendes tun können:
quelle