Saya sedang menulis wake on script lan untuk satu set komputer lab kami. Kami memiliki sqlite db dengan daftar nama host komputer, IP, dan MAC dan saat ini saya melakukan ping masing-masing dengan '-c1' sehingga tidak berjalan tanpa henti - tetapi bahkan yang membutuhkan waktu menunggu, apakah ada cara yang lebih cepat untuk mendapatkan jawab daripada ping? Menggunakan ping tampaknya memperlambat script sedikit karena membutuhkan jawaban ping untuk melanjutkan.
Terima kasih banyak atas sarannya!
sumber
Inilah yang dirancang untuk fping. http://fping.sourceforge.net/
Anda perlu mem-parsing output sesudahnya alih-alih mengandalkan kode kembali, tetapi jauh lebih cepat daripada melakukan ping normal.
sumber
Ini hanya akan berfungsi untuk satu atau dua komputer, tetapi jika Anda menghubungkannya langsung ke komputer yang bertanggung jawab untuk memeriksa statusnya, Anda dapat menggunakannya
ethtool
untuk melihat apakah tautannya aktif atau tidak.sumber
ethtool {network_interface} | grep "Link detected" | cut -f 3 -d ' '
akan kembaliyes
jika mesin terhubung, danno
jika tidak.Apa yang bisa Anda lakukan dengan melakukan ping ke alamat broadcast yang seharusnya menyebabkan semua komputer melakukan ping kembali. Kemudian Anda bisa mengecek daftar ini terhadap apa yang Anda miliki di SQLite untuk memastikan semua komputer menyala.
Selain itu, ping mungkin merupakan cara tercepat untuk memastikan komputer terjaga di jaringan. Seperti yang disebutkan oleh jawaban lain ini tidak memberikan data yang benar-benar berguna. Jika Anda memiliki kemampuan untuk menginstal skrip, Anda dapat menambahkan cronjob untuk melakukan ping ke server pusat, menjalankan tugas, atau hanya menggema daftar proses ke server pusat yang akan mencatat permintaan. Kemudian cukup memeriksa yang akan memberi tahu Anda jika Anda memiliki masalah tanpa perlu memeriksa secara manual setiap waktu.
sumber
Ganglia menggunakan lalu lintas multicast untuk memantau banyak host dalam sebuah cluster, mungkin Anda bisa menggunakan sesuatu yang serupa? Ini mengasumsikan bahwa perangkat keras jaringan Anda memungkinkan lalu lintas multicast antara semua host dan sistem pemantauan Anda.
sumber
Saya memiliki masalah yang sama dan muncul dengan skrip (cepat & kotor) berikut. Ini pada dasarnya mengeluarkan semua ping sebagai pekerjaan terpisah secara paralel dan akan memindai seluruh / 24 subnet dalam 3 detik; perhatikan bahwa karena alasan tertentu saya tidak repot-repot mencari tahu saya tidak bisa menggunakan kode hasil ping di sini tetapi grep -v melakukan pekerjaan:
sumber
Dalam C,
sumber
Saya telah menemukan
fping -r0 ...
untuk memberikan respons tercepat.Opsi
-r
(coba lagi) tampaknya lebih cepat daripada-c
(hitungan) yang serupa . Menggunakan-r0
hasil hanya dalam satu ping yang dikirim dan hasilnya jauh disingkat dibandingkan dengan opsi lain.Di sistem saya ...
Hasil dalam ...
Sedikit pemijatan untuk menghilangkan
ICMP
pesan memberi saya ...Adapun kecepatan,
fping
pada Intel Dual-Core 1.8GHz tua ini dengan RAM 4GB adalah ...Dan
grep
dansort
tampaknya hanya menambah 0,001-0,004 ke waktu ...CATATAN
ICMP
pesan tidak terjadi pada setiap run.2>&1
ini diperlukan untuk mencegah agarICMP
pesan tidak muncul di output saat dikirimstderr
sebagai gantinyastdout
.sumber