Я понимаю, что вы что-то там конструировали, но сами посмотрите. Строка
Код: Выделить всё
:len[/log print as-value where buffer=memory message~"failed to get valid proposal"]
это КОЛИЧЕСТВО строк с подобным содержанием. Конструкция
Код: Выделить всё
(:len[/log print as-value where buffer=memory message~"failed to get valid proposal"]>= $5)
Уже как таковая не имеет смысла. $5 - это переменная с именем 5, и как она будет сравниваться с числом, если она не объявлена, не определен тип самой переменной, непонятно. Но даже если сравнение пройдет, мы можем получить два варианта
True или
False. А вы далее приступаете к чему? Что вы ищете и в чем?
По сути в первой части в команде foreach мы должны в какой-то переменной ( у вас это line) определить массив для дальнейшей работы. И далее после do в этом массиве методом перебора совершить с результатом какое-то действие. На такие проекты, особенно если опыта нет, надо четко представлять, что и из чего выйдет. И не стеснятся написать что-то типа сценария, по которому ваш скрипт будет выполнятся. А вы нагромоздили команд и думаете, что оно само? Оно само тупое до крайности

И если ему чего не ясно, оно просто ничего не делает. Что, собственно ваш случай.
Например типа такого.
1. Определить переменную с количеством нежелательных запросов :local line [:len[/log print as-value where buffer=memory message~"failed to get valid proposal"]];
2. Провести сравнение, если запросов больше какого-то порога, :if ($line > 5) do={.............
3. Собственно действие по определению адреса из лога (я парсинг не очень люблю, сами ищите варианты) :local targetip [..................................];
4. Поиск адреса на предмет присутствия в black_list :if ([/ip firewall address-list find address=$targetip list=black_list] != "") do={......
4. Занесение в адрес-лист /ip firewall address-list add list=black_list address=$targetip timeout= 5d;
}
5. Очистка лога, чтобы не считать прошлые попытки ещё раз
}
Конечно, это очень грубый набросок и скриптописатели найдут в нем кучу ошибок. Но с чего-то же надо начинать, как вы сами сказали. Потом дебажите на предмет косяков и несработок и вперед в обкатку на несколько дней не железо.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...