Shell 脚本 IP 邻居刷新
Shell Script IP Neighbor Refresh
我正在开发同一网络中多个设备的应用程序。其中一个带头并执行一些功能。我用我找到的最高 IP 来仲裁"lead"。
我的应用程序旨在实现容错,如果我松开控制器,下一个应该接管。
我是运行下面的脚本。
#define SHELLSCRIPT "\
#/bin/bash \n\
echo $(ifconfig | grep -A 1 'eth0' | tail -1 | cut -d ':' -f 2 | cut -d ' ' -f 1) > IP.txt\n\
while read LINE; do echo $LINE | grep -i -E 192.168 | grep -v .254 | cut -c1-13; done < /proc/net/arp >> IP.txt\n\
"
我发现的问题是ARP缓存没有自动刷新。有谁知道如何 "refresh" ARP table(不使用 arp 命令)。
我已经试过了"ip -s neigh flush all",但是好像刷新ARP有延迟table。
无论如何,如果有任何建议,我将不胜感激。
您可以同时在接口上禁用和启用ARP协议。
ARP 缓存将很快被清除。
ip link set arp off dev eth0 ; ip link set arp on dev eth0
请首先运行在测试环境中检查并确保没有连接中断。
我正在开发同一网络中多个设备的应用程序。其中一个带头并执行一些功能。我用我找到的最高 IP 来仲裁"lead"。
我的应用程序旨在实现容错,如果我松开控制器,下一个应该接管。 我是运行下面的脚本。
#define SHELLSCRIPT "\
#/bin/bash \n\
echo $(ifconfig | grep -A 1 'eth0' | tail -1 | cut -d ':' -f 2 | cut -d ' ' -f 1) > IP.txt\n\
while read LINE; do echo $LINE | grep -i -E 192.168 | grep -v .254 | cut -c1-13; done < /proc/net/arp >> IP.txt\n\
"
我发现的问题是ARP缓存没有自动刷新。有谁知道如何 "refresh" ARP table(不使用 arp 命令)。 我已经试过了"ip -s neigh flush all",但是好像刷新ARP有延迟table。
无论如何,如果有任何建议,我将不胜感激。
您可以同时在接口上禁用和启用ARP协议。
ARP 缓存将很快被清除。
ip link set arp off dev eth0 ; ip link set arp on dev eth0
请首先运行在测试环境中检查并确保没有连接中断。