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