[英]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.