оповещение в телегу

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
Аватара пользователя
Virtue
Сообщения: 142
Зарегистрирован: 07 мар 2014, 10:17

Предлагаю новый скрипт оповещения в телеграм со сравнительно небольшой нагрузкой на ЦПУ. Интервал выполнения - раз в минуту. Необходимо создать своего бота через BotFather и добавить его в группу, в которую будут приходить оповещения.

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

# script by Virtue
:delay 10
:local timeNow [/system clock get time]
:local logs
:if ([:pick $timeNow 0 2] < 03) do={
:local date [/system clock get date]
:foreach h in=[/log find] do={
:local htime [/log get $h time]
:if (($htime ~ [:pick $date 0 6]) and ([:pick $htime 7 15] > ($timeNow - 00:01:00))) do={
:set logs ($logs, $h)
  }
 }
} else={
:set logs [/log find time >= ($timeNow - 00:01:00)]
}
:if ([:len $logs] > 0 ) do={
:local messages
:foreach i in=$logs do={
:local imessage [/log get $i message]
:if ($imessage ~"telnet" and $imessage ~"logged in") do={} else={
:local topics [/log get $i topics]
:if ($topics ~"wireless" || $topics ~"warning" || $imessage ~"logged in" || $topics ~"error" || $topics ~"critical") do={
:if ($imessage ~ "[0-F][0-F]:[0-F][0-F]:[0-F][0-F]:[0-F][0-F]:[0-F][0-F]:[0-F][0-F]") do={
:foreach k in=[/ip dhcp-server lease find] do={
:local mac [/ip dhcp-server lease get $k mac-address]
:if ($imessage ~ "$mac") do={
:set imessage ($imessage . " / " . [/ip dhcp-server lease get $k comment])
      }
     }
    }
:local currentTime [ /log get $i time ]
:set messages ($messages.$currentTime." ".$imessage."%0A%0A")
   }
  }
 }
:if ([:len $messages] > 0 ) do={
:local botID "bot1000075423:AAEYn0eWtjTRKKg_BGF7fQiY5UjrTsdMfhl"
:local chatID "-1001422750080"
:local mikname [/system  identity  get name]
/tool fetch keep-result=no url="https://api.telegram.org/$botID/sendmessage?chat_id=$chatID&text= $mikname : %0A$messages"
 }
}
При наличии комментарий статик дхцп лесс записей, маки, содержащиеся в логах, будут присылаться с этими комментариями.

Для отключения отслеживания вайфай подключений, стираем из кода $topics ~"wireless"

Меняем botID и chatID вконце кода на свои..
Последний раз редактировалось Virtue 27 дек 2020, 01:28, всего редактировалось 2 раза.


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

Скрипт ищет только динамических клиентов в dhcp-lease. А статические ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Аватара пользователя
Virtue
Сообщения: 142
Зарегистрирован: 07 мар 2014, 10:17

Sertik писал(а): 24 сен 2020, 12:27 Скрипт ищет только динамических клиентов в dhcp-lease. А статические ?
Ничего не понял, у меня как раз все записи статические. Я даже не могу сделать комментарий пока из динамической записи не сделаю статику


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

Не не, это понятно. Я имел ввиду "совсем статических" клиентов в /ip arp. Но их тогда пинговать всех придётся по таблице, а это долго.


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

А как получить не комментарий по строке, а HOST-NAME?
Конструкция вида :set imessage ($imessage . " / " . [/ip dhcp-server lease get $k value-name=HOST-NAME]) не работает почему-то...


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

Eugen233 писал(а): 02 окт 2020, 00:06 А как получить не комментарий по строке, а HOST-NAME?
Конструкция вида :set imessage ($imessage . " / " . [/ip dhcp-server lease get $k value-name=HOST-NAME]) не работает почему-то...
да проверил ваши слова, в общем HOST-NAME именно заглавными буквами не работает, а строчными все ок, пробуйте..


Eugen233
Сообщения: 8
Зарегистрирован: 02 окт 2020, 00:00

Мне кажется я пробовал и в нижнем регистре, вечером проверю, сейчас нет доступа.
А имеет значение статическая запись или динамическая? а то у мне большинство динамические...


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

Eugen233 писал(а): 02 окт 2020, 16:00 А имеет значение статическая запись или динамическая?
Не имеет. Сейчас специально проверил host-name + динамический адрес, работает..


Eugen233
Сообщения: 8
Зарегистрирован: 02 окт 2020, 00:00

Спасибо, кажется понял причину, падает на попытке отправить вот это имя - "Honor_10-a2e", но при этом нормально отправляет "нonor_10-a2e" или например "Galaxy-A3-2017"
Как починить пока ЗХ, но хоть понятно куда копать...


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

Eugen233 писал(а): 02 окт 2020, 22:32 Спасибо
ну а насчет host-name всетаки проверили? заглавными не отправляет, а маленькими отправляет?


Ответить