簡體   English   中英

如何在Linux中Ping直到知道主機有X秒超時?

[英]How to ping in linux until host is known with X seconds timeout?

我試圖在我的代碼中等待設備啟動,而我不想使用睡眠來等待他。 我的問題是,使用以下設備時,有時設備無法啟動並陷入循環中:

until ping -c1 www.google.com &>/dev/null; do :; done
while true; do ping -c1 www.google.com > /dev/null && break; done

我如何嘗試在設備上ping X秒鍾並使用一根襯紙打印“ DEAD”或“ ALIVE”?

您需要-W選項,使ping等待X秒的超時。

對於Linux(iputils):

$ ping -c1 -W10 <url>

對於MacOS X:

$ ping -c1 -t10 <url>

不是單線的,但這將等待10秒鍾,然后超時:

if ping -c 1 -W 10 www.google.com 1>/dev/null; then 
    echo Success; 
else 
    echo Failed; 
fi

您可以使用以下linux實用程序: https : //linux.die.net/man/1/timeout
而且您的oneliner將是這樣的:

timeout 50 bash -c "while true; do if ping -c1 -i1 8.8.8.8 &>/dev/null; then echo "up"; break; fi; done"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM