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
Untuk orang yang mencari solusi yang melibatkan
ping
, gunakan-i
saklar.Atau, jika Anda ingin menggunakan 0,1, Anda harus menjalankannya sebagai root
Tidak perlu mengunduh utilitas tambahan.
sumber
ping
akan menunggu jawaban - melainkan hanya mengirim ping berturut-turut lebih cepat ....Anda dapat mengatur batas waktu singkat dengan
timeout
perintah di Ubuntu / Debian:sumber
timeout (GNU coreutils) 8.4
.DURATION is a floating point number with an optional suffix: 's' for seconds (the default),
... Dalamman timeout
laporan kasus sayaGNU coreutils 8.26
. BWT, saya menggunakan Ubuntu 17.04.Saya akan menggunakan nmap untuk tugas ini.
nmap -sP --max-retries=1 --host-timeout=1500ms 10.0.0.1
Lihat Dokumentasi nmap untuk detail lebih lanjut tentang ini.
sumber
Anda mungkin ingin melihat alat ping arp jika semua host Anda berada di LAN fisik. Ini melakukan hal yang sama tetapi menggunakan paket arp layer 2 untuk melakukan 'ping'. Anda dapat menggunakan kombinasi arpping dan icmp ping, atau bahkan tcp ping, untuk mengetahui kegagalannya. Contohnya adalah crash tcp stack, meskipun jarang hari ini, kami dapat menemukan jika mesin tcp stack mengalami crash, karena mesin tidak akan merespons ping, namun akan merespons ke arp (yang merupakan bagian kode berbeda pada host) .
menggunakan kombinasi arpping, tcpping, dan icmp ping Anda dapat mengetahui apakah layanan pada mesin mengalami kerusakan, tumpukan tcp macet, atau mesin telah terkunci sepenuhnya. Jika Anda telah mengatur sakelar ethernet, Anda dapat memperoleh data tautan fisik, mengungkapkan apakah mesin tersebut benar-benar dihidupkan, atau telah dicabut secara fisik. Kami memiliki situasi di mana mesin (klien di ruang publik) akan dimatikan, kami mengumpulkan data dan bangun yang dikirim pada paket LAN, untuk menyalakan mesin. :-)
Solusi apa pun yang Anda buat, jika jaringan Anda sibuk, pikirkan penerapan beberapa jenis qo, sehingga paket pemantauan Anda menjadi prioritas pada jaringan, kehilangan paket pengukuran karena kemacetan jaringan dapat memberikan alarm palsu. Jika memang menggunakan qo untuk memantau paket, maka Anda harus berpikir tentang mengumpulkan data tentang pemanfaatan jaringan.
Jadi, Anda dapat membuat solusi pemantauan Anda serumit atau semudah yang Anda suka. Kami menemukan bahkan sistem pemantauan paling dasar adalah langkah ke arah yang benar, setidaknya beberapa administrator mengawasi mesin :-).
semoga berhasil!
sumber
@ jordon-bedwell punya saran bagus.
@ laszlo-valko https://stackoverflow.com/questions/20359487/why-does-ping-not-timeout-in-linux menjelaskan bahwa waktu tunggu ping hanya dimulai setelah alamat ip telah ditentukan. Jika Anda menggunakan dns dan workstation Anda sedang luring maka ping tidak dapat menentukan alamat ip dan tampaknya menunggu sekitar 20 + detik default sebelum mengembalikan false.
Menggunakan alat 'batas waktu' linux memberikan lebih banyak kontrol saat menjalankan ping dengan nama domain.
Terima kasih kawan
sumber
Gunakan sakelar -w , baik pada Windows dan Debian.
Ini adalah cara cepat untuk memeriksa apakah mesin merespons sama sekali, dengan asumsi mesin akan merespons dalam waktu kurang dari jumlah detik yang ditentukan.
sumber
Jika Anda dapat memindai subnet Anda (atau bagian dari itu) tanpa memicu alarm keamanan, dan tidak keberatan sedikit data tambahan, Angry IP Scanner cepat, gratis, memungkinkan Anda mengklik untuk mengurutkan berdasarkan status, dan dapat memberikan informasi lebih rinci .
sumber
Mengapa tidak meluncurkan ping di latar belakang, dengan output ke file sementara, secara paralel untuk setiap host? Kemudian tidur selama satu detik, matikan semua proses ping yang masih berjalan, dan baca file untuk mengumpulkan output.
sumber
Batas waktu adalah nilai integer yang menunjukkan seberapa jauh dan lama paket dapat dikirim. Nilai di bawah 1 tidak ada artinya. Nilai 1 menunjukkan Anda hanya melakukan ping tetangga langsung.
Satu-satunya cara untuk mempercepat adalah menjalankan pemeriksaan latar belakang dan memanen hasilnya. Inilah yang dilakukan alat seperti nagios.
sumber
Anda dapat mencoba sesuatu seperti ini. Tapi butuh 15 menit untuk berlari.
sumber
nmap
akan menjadi alat yang tepat untuk pekerjaan itu.coba ini:
sumber
fping
?ping memiliki opsi [-t timeout] dan [-W waittime] sehingga Anda dapat melakukan:
sumber