Linux
Arping 在腳本中不起作用
在我的網路中,我有一個 linux 主機作為位於 192.168.150.1 的預設網關。在 192.168.150.4 的另一台主機上,我有這個腳本來測量發送 arp 請求和接收它之間的時間:
#!/usr/bin/env bash for i in $(seq 30 $END); do sudo ifconfig enp3s0 up sleep 5s; arping -I enp3s0 -c 1 192.168.150.1 echo $(date +%s.%5N) | tee -a ./ifuptimes.txt; sleep 55s; sudo ifconfig enp3s0 down; sleep 1m; done;
奇怪的是,在腳本中發送 arping 時,192.168.150.1 的目標只是偶爾響應它,而在終端中手動執行它時每次都會得到響應。為什麼會發生這種情況,我該如何解決?
事實證明,啟用介面和發送 arp 請求之間的 5 秒間隔不足以使介面準備好(我的經驗測試大約給出了 10 秒)。增加間隔會導致腳本正常工作。
我有這個腳本來測量發送 arp 請求和接收它之間的時間
也許最好啟動wireshark(或tcpdump),刪除arp-table並執行arping。在 Wireshark 中,您可以看到包括時間在內的 arp 請求和 arp 響應。
我希望這可以幫助你。
為什麼要斷開乙太網介面並循環執行?
我猜這個問題是基於 ifup 太慢或類似的東西(DHCP,…)。
為什麼不使用“cron”或“at”或“watch”?