Назад | Перейти на главную страницу

Мониторинг движения вверх / вниз интерфейса FreeBSD

Как узнать о статусе конкретного интерфейса во FreeBSD?

ifconfig <ifname> | grep "status: active" 

работает нормально, но я хочу избежать опроса и как можно быстрее получать информацию о ifup / ifdown.

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) к сценарию.

Вы можете отслеживать события вверх / вниз через devd (8). Посмотрите на devd.conf (5) события LINK_UP и LINK_DOWN.