Networking

比 ping 檢查電腦是否線上更快的方法?

  • October 17, 2019

我正在為我們的一組實驗室電腦編寫區域網路喚醒腳本。我們有帶有電腦主機名、IP 和 MAC 列表的 sqlite db,目前我用“-c1”對它們中的每一個進行 ping,因此它不會無休止地執行 - 但即使這需要一些等待,是否有更快的方法來獲取回答而不是ping?使用 ping 似乎會減慢腳本的速度,因為它需要 ping 答案才能繼續。

非常感謝您的任何建議!

發送單個數據包並等待響應將是最快的方法之一,而 ping 是一種很好的方法。事實上,根據您的案例,我認為它太快了,因為它並沒有真正告訴您系統是否真的在做任何有用的事情,只是核心的網路子系統是活動的並且已配置。

但是假設這足夠好,您可以進行一些改進。首先,您可以使用-W1將 ping 超時減少到一秒。其次,您可以讓腳本非同步(在後台執行緒中)ping 不同的主機,並根據需要檢查結果,而不是等待。

或者,您可以重新考慮該方法並讓遠端系統在它們啟動時以某種方式簽入,如果系統尚未簽入,您可以假設它已關閉。

引用自:https://unix.stackexchange.com/questions/7580