Нужна помощь!

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Если включить логирование на всё что можно, то и скрипты не нужны будут ... :-) Ради такой малой задачи гонять такой скрипт ... :-)


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
kertis
Сообщения: 8
Зарегистрирован: 28 июл 2020, 19:59

Появилась новая проблема.
Если локальные ip идут по адресам адрес-листа "ХХХХХ", тогда это записывается в лог и отправляется в телегу. Но если IP из этого листа "ХХХХХ" недоступен, то в логе начинается спам, что можно с этим сделать?


Аватара пользователя
Virtue
Сообщения: 142
Зарегистрирован: 07 мар 2014, 10:17

kertis писал(а): 29 июл 2020, 14:42 Появилась новая проблема.
Очень сложно разбирать чужие скрипты и выявлять в них проблемы.. Гораздо проще сделать как я говорил, скрипт взять из темы "оповещение телеграм" тот который обновленный, вконце темы я выложил, он будет слать в телегу ошибки и варнинги из лога, и написать простой скрипт типа: если в адрес листе что-то есть, пишем это в лог варнинг.. всё..


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Ладно уж. Вот Вам по доброте душевной. Всё проверено и работает и не нужно огороды городить.
Всё соответственно "Вашему ТЗ" - пересылает все! записи из адрес листа $myaddresslist в Телегу
Разумеется можно пересылать только новые записи - две строки добавить в скрипт, но это уже сами, сами или - в раздел платные услуги :-)

Код: Выделить всё

:local listaddress [:toarray ""]
:local myaddresslist "my adresslist name"
:local mtIdentity [/system identity get name];
:local botID "botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXX" ;
:local myChatID "YYYYYY" ;

:foreach i in=[/ip firewall address-list find where list=$myaddresslist] do={:set listaddress ($listaddress, [/ip firewall address-list get $i address]);}
:local la ("$mtIdentity "."send "."$myaddresslist "."ip adresses: "."$[:tostr $listaddress]")
:tool fetch url=("https://api.telegram.org/$botID/sendmessage\?chat_id=$myChatID&text=$la") keep-result=no;


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
kertis
Сообщения: 8
Зарегистрирован: 28 июл 2020, 19:59

Sertik писал(а): 29 июл 2020, 21:56 Ладно уж. Вот Вам по доброте душевной. Всё проверено и работает и не нужно огороды городить.
Всё соответственно "Вашему ТЗ" - пересылает все! записи из адрес листа $myaddresslist в Телегу
Разумеется можно пересылать только новые записи - две строки добавить в скрипт, но это уже сами, сами или - в раздел платные услуги :-)

Код: Выделить всё

:local listaddress [:toarray ""]
:local myaddresslist "my adresslist name"
:local mtIdentity [/system identity get name];
:local botID "botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXX" ;
:local myChatID "YYYYYY" ;

:foreach i in=[/ip firewall address-list find where list=$myaddresslist] do={:set listaddress ($listaddress, [/ip firewall address-list get $i address]);}
:local la ("$mtIdentity "."send "."$myaddresslist "."ip adresses: "."$[:tostr $listaddress]")
:tool fetch url=("https://api.telegram.org/$botID/sendmessage\?chat_id=$myChatID&text=$la") keep-result=no;
Спасибо. Вчера дошел до такого варианта.

Код: Выделить всё

:foreach counter in= [/ip firewall address-list find list=ХХХХХХ] do={
    :local ip [/ip firewall address-list get $counter address];
tool fetch url="https://api.telegram.org/botХХХХХХХХХХХХХХХ/sendMessage?chat_id=ХХХХХХХХХХХ&text=$ip+ХХХХХ" dst-path=telegram.txt};


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Код: Выделить всё

:foreach counter in= [/ip firewall address-list find list=ХХХХХХ] do={
    :local ip [/ip firewall address-list get $counter address];
tool fetch url="https://api.telegram.org/botХХХХХХХХХХХХХХХ/sendMessage?chat_id=ХХХХХХХХХХХ&text=$ip+ХХХХХ" dst-path=telegram.txt};
Плохой вариант. Так как отправка в Телеграмм происходит в цикле, отправляется по одному адресу. Если у Вас там сто адресов :fetch сто раз сработает и на 2-ом, третьем повиснет - между отправками нет задержки - это раз, во-вторых зачем гонять fetch на отправку каждого адреса - нужно получить все адреса в массив и один раз их отправить. Ну и по-хорошему обработку ошибок нужно при отправке прикрутить, т.к. если fetch по какой-то причине не отправит - скрипт повиснет просто.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Ответить