Доброго времени суток. Задача (не совсем тривиальная) иногда, при поднятии bgp пира не приходят префиксы. Причину не установил, но это мелочи, решил написать скрипт, который будет смотреть на состояние пира, количество префиксов (<0) и на основе этого disable/enable данного пира (после этого префиксы приходят)
Комменты у пиров не используются
Что я умудрился сделать (пока)
Код: Выделить всё
:global cnt [/routing bgp peer get [find where prefix-count=2] name]
routing bgp peer set disabled=yes $cnt
Это работает при указании конкретного количества префиксов, получить в таком виде имя пира, где количество префиксов меньше 1 не получилось
Код: Выделить всё
:global z
:set z [routing bgp peer print count-only]
Получил общее количество пиров для цикла, чтоб найти именно тех, у которых префикс меньше единицы
Код: Выделить всё
:local cntpir [[/routing bgp peer get [find where state="established"] name]]
Получил общее количество пиров с состоянием established, чтоб понапрасну не дёргать задизейбленных
Но вот сложить в кучу не получилось.
Пытаюсь сделать цикл, который просмотрит всех пиров с префиксами <1 и состоянием established, сделает этому пиру "disable" и через секунду "enable"
Сам скрипт, естественно, раз в 5 минут (чтоб успели подняться те, которые я дёрнул)