如何获取 FreeBSD 中特定接口的状态?
ifconfig <ifname> | grep "status: active"
工作正常,但我想避免轮询并尽快了解 ifup/ifdown。
答案1
devd(8)
就可以了。您需要将其配置为在接口上发生事件时运行操作LINK_UP
。LINK_DOWN
要添加/etc/devd.conf
或甚至更好的示例配置是创建/etc/devd/interface.conf
:
notify 0 {
match "system" "IFNET";
match "subsystem" "(em0|em1)";
match "type" "LINK_DOWN";
action "/usr/local/sbin/notifier.sh $subsystem"
}
上述配置假设您希望在接口em0
或em1
发生故障时收到通知,并在事件发生时调用脚本。它还会将接口名称(因此$subsystem
)传递给脚本。
答案2
您可以通过 devd(8) 监视 up/down 事件。查看 devd.conf(5) 中的 LINK_UP 和 LINK_DOWN 事件。