以下脚本的核心运作原理十分清晰:它会自动检测本地存储的 arp.txt 文件是否产生变动,一旦检测到变更,便立即清空当前的 ARP 缓存,并重新加载静态映射表。更关键的是,结合 FTP 拉取远程服务器上的 arp.txt,运维人员无需登录服务器即可动态调整静态 MAC 地址表,彻底告别手动敲击命令的繁琐操作。
#!/bin/sh
_PATH="/home/shwb"
if [ -s $_PATH/md5 ] && [ -s $_PATH/arp.txt ] ; then
new=`md5 $_PATH/arp.txt | cut -d ' ' -f 4`
old=`cat $_PATH/md5`
if [ "$new" != "$old" ] ; then
arp -a -d
arp -f $_PATH/arp.txt
date "+DATE: %Y-%m-%d-%H:%M:%S" >>/var/log/arp.log
md5 $_PATH/arp.txt | cut -d ' ' -f 4 >$_PATH/md5
fi
elif [ -s $_PATH/arp.txt ] ; then
arp -a -d
arp -f $_PATH/arp.txt
date "+DATE: %Y-%m-%d-%H:%M:%S" >>/var/log/arp.log
md5 $_PATH/arp.txt | cut -d ' ' -f 4 >$_PATH/md5
fi
需要特别说明的是,arp.txt 文件的格式非常简单直观:每一行由 IP 地址和对应的 MAC 地址组成,两者之间用空格分隔,示例如下:
192.168.1.1 00:00:00:00:00:00
在实际部署过程中,只需将 FTP 下载指令添加到脚本开头(或通过 cron 定时任务周期执行),即可轻松实现远程动态修改服务器静态 MAC 表,兼顾灵活性与实用性,是运维人员管理 ARP 缓存的理想方案。
