LAN'ımdaki tüm ana bilgisayarları listeleyen bir komut dosyası yazmaya çalışıyorum (yaklaşık 20 tanesi var) ve her ana bilgisayarın yanına ping durumu yazıyor. DHCP leasing dosyam var, bu yüzden tüm IP'lere sahibim (örneğin, 10.0.0.1, 10.0.0.2, vb.), Tek ihtiyacım olan her ana bilgisayar için ping durumu.
Bu yüzden, betiğim her ana bilgisayar için tek bir ping başlattı:
ping -c 1 10.0.0.1
Ne yazık ki, bir ana bilgisayar çevrimdışı olduğunda, ping zaman aşımına uğramak için uzun zaman alıyor. Kontrol ettim man ping
, zaman aşımı gecikmesini ayarlamak için iki seçenek var gibi görünüyor: -w deadline
ve -W timeout
. Sanırım ikincisiyle ilgileniyorum.
Bu yüzden bunu denedim:
ping -c 1 -W 1 10.0.0.1
Ancak çevrimdışı ana bilgisayar başına bir saniye beklemek hala çok uzun. Bir saniyenin altına ayarlamaya çalıştım, ancak parametreyi hiç dikkate almıyor gibi görünüyor:
ping -c 1 -W 0.1 10.0.0.1 # timeout option is ignored, apparently
Zaman aşımını daha düşük bir değere ayarlamanın bir yolu var mı? Olmazsa, alternatif var mı?
Düzenle
- İşletim sistemi Debian Lenny.
- Pinglemeye çalıştığım ana bilgisayarlar aslında erişim noktaları. Kullanıcılar ile aynı vlan ve alt ağdalar (dağıtım ve değiştirme kolaylığı için). Bu yüzden tüm alt ağı taramak istemiyorum (
ping -b
örneğin bir).
# 2 düzenleyin
fping
Çözümü kabul ettim (diğer tüm cevaplar için teşekkürler). Bu komut tam olarak aradığım şeyi yapıyor:
fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4
Bu komutun tamamlanması en fazla 500ms alır ve aynı anda tüm ana bilgisayarların ping durumunu verir:
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
Debian Lenny'de kurulum çok önemlidir:
aptitude update
aptitude install fping