Saya mencoba menulis skrip yang berisi daftar semua host di LAN saya (ada sekitar 20 di antaranya) dan menulis status ping di sebelah setiap host. Saya memiliki file penyewaan DHCP, jadi saya memiliki semua IP (katakanlah, 10.0.0.1, 10.0.0.2, dll.), Yang saya butuhkan hanyalah status ping untuk setiap host.
Jadi, skrip saya meluncurkan satu ping untuk setiap host:
ping -c 1 10.0.0.1
Sayangnya, ketika sebuah host sedang offline, ping membutuhkan waktu lama untuk habis. Saya memeriksa man ping
, sepertinya ada dua opsi untuk mengatur waktu tunda: -w deadline
dan -W timeout
. Saya pikir saya tertarik pada yang terakhir.
Jadi saya mencoba ini:
ping -c 1 -W 1 10.0.0.1
Tetapi menunggu satu detik per host offline masih terlalu lama. Saya mencoba mengaturnya di bawah satu detik, tetapi sepertinya tidak mempertimbangkan parameter sama sekali:
ping -c 1 -W 0.1 10.0.0.1 # timeout option is ignored, apparently
Apakah ada cara untuk mengatur batas waktu ke nilai yang lebih rendah? Jika tidak, apakah ada alternatif lain?
Sunting
- OSnya adalah Debian Lenny.
- Host yang saya coba ping sebenarnya adalah titik akses. Mereka berada di vlan dan subnet yang sama dengan pengguna (untuk kesederhanaan penempatan dan penggantian). Inilah sebabnya saya tidak ingin memindai semua subnet (dengan
ping -b
misalnya).
Edit # 2
Saya menerima fping
solusinya (terima kasih atas semua jawaban lain). Perintah ini melakukan persis apa yang saya cari:
fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4
Perintah ini membutuhkan paling banyak 500ms untuk menyelesaikan, dan memberi saya status ping semua host sekaligus:
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
Pada Debian Lenny, instalasi itu sepele:
aptitude update
aptitude install fping