我正在运行一个带有两个网络接口的 Debian Lenny 服务器。第一个接口 eth0 连接到 LAN 并从该 LAN 上的 DHCP 服务器接收 IP 地址。第二个接口 eth1 直接连接到 NAS,此 NAS 上安装了 DHCP 服务器,因此当 NAS 通电时,eth1 会从该服务器接收 IP 地址。
我想在 eth1 收到 IP 地址时自动运行 shell 脚本。该怎么做?
答案1
将 shell 脚本放入 的配置节的up
参数中。eth1
/etc/network/interfaces
答案2
您的系统已经当通过 DHCP 收到 IP 地址时运行脚本。这正是 DHCP 服务器提供的信息用于实际配置 IP 地址、解析器配置、路由等内容的方式。
如果您使用的是 ISC dhcp 客户端(称为“dhclient”),则脚本通常类似于 /etc/dhclient-script。如果您使用的是其他 DHCP 客户端(pump 等),它可能具有类似的功能。
答案3
您还可以运行 cronjob 来频繁检查您的 ipaaddress。
您可以使用包含以下内容的脚本:
if [ $(ifconfig eth1 |grep "inet a"| cut -f 2 -d ":" | cut -f 1 -d " ") = "youripadress" ];
then
echo "oh, i got an ip";
#do some nasty stuff here!
fi
但您必须构建某种脚本,使其只执行一次。例如,将 IP 保存到文件并检查 IP 是否发生变化或类似情况。如果您只想检查接口是否只启动一次,那么来自 womble 的答案将是更好的解决方案。