Реализовал небольшой "мониторинг" активных соединений на VPN сервере с отправкой с помощью API в телеграм.
Принцип таков, что в Netwatch в случае On Down выполняет скрипт с следующим содержанием:
Код: Выделить всё
:local ipadd [:len [/ppp/active/ find name=TEST]];\
:local TimeNow [/system clock get time];\
:if ($TimeNow <= 22:30:00 or $TimeNow >= 08:00:00) do=\ # Проверяем, что бы скрипт работал только в дневное время.
{\
:if ($ipadd = 0)\ # Проверяется было ли переподключение соединения, если нет - отправляет ALARM
do={tool fetch output=none url=("https://api.telegram.org/botTEST/sendMessage?chat_id=-TEST&message_thread_id=TEST&text=ALARM = TEST")};\
:delay 1; \
{\
:do {\
:local ipadd [:len [/ppp/active/ find name=TEST]];\ # Запускаем цикл, где после появления соединения отправляется сообщение, что всё ОК.
:if ($ipadd !=0) do=\
{tool fetch output=none url=("https://api.telegram.org/botTEST/sendMessage?chat_id=-TEST&message_thread_id=TEST&text=OK = TEST")}\
}\
while=([:len [/ppp/active/ find name=TEST] =0)
}\
};
1. Иногда сообщение ОК из цикла не прилетает в чат. Пока не понял почему.
2. Как сильно будет грузиться система, если единовременно будут отрабатывать 20-30 циклов?
p.s. (On Up отрабатывает некорректно в рамках задачи, поэтому нещадно вырезал этот вариант для использования после тестов)