我正在运行带有两个networking接口的Debian Lenny服务器。 第一个接口eth0连接到局域网,并从该局域网上的DHCP服务器接收IP地址。 第二个接口eth1直接连接到一个NAS,在这个NAS上安装了一个DHCP服务器,所以当NAS启动时,eth1会从中接收一个IP地址。
当eth1收到IP地址时,我想自动运行一个shell脚本。 如何才能做到这一点?
将shell脚本放在/etc/network/interfaces eth1configuration节的up参数中。
您的系统在通过DHCP接收IP地址时已经在运行脚本。 这正是如何使用DHCP服务器提供的信息来实际configuration诸如您的IP地址,parsing器configuration,路由等等的信息。
如果您使用的是ISC DHCP客户端(称为“dhclient”),那么脚本通常是/ etc / dhclient-script。 如果你使用另一个DHCP客户端(泵等),它可能具有类似的function。
你也可以运行一个cronjob来经常检查你的ipadress。
您可以使用具有以下内容的脚本:
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
但是你必须以某种方式构build一些脚本,只能执行一次脚本。 例如保存ip到一个文件,并检查是否更改ip或类似的东西。 如果你只是想检查界面是否正好一次,那么从womble的答案将是更好的解决scheme。