Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Письмо приходит, когда админ или другой пользователь заходит через Winbox или подобное.

    Письмо приходит, когда админ или другой пользователь заходит через Winbox или подобное.

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Письмо приходит, когда админ или другой пользователь заходит через Winbox или подобное., RouterOS
     
    Sadam4090
    Guest
    #1
    0
    29.08.2013 13:47:00
    Привет! Не мог бы кто-нибудь помочь с написанием скрипта? Хочу узнать, как создать скрипт, который будет отправлять письмо на определённый адрес электронной почты при входе пользователя через Winbox, FTP, SSH, Telnet или API. В письме нужно указать время входа, дату, пользователя, IP-адрес, а также способ входа (например, через Winbox). И ещё, чтобы он отправлял уведомление, если пользователь пытался войти и не смог из-за неправильного имени пользователя или пароля.

    С уважением
     
     
     
    Sadam4090
    Guest
    #2
    0
    17.09.2013 13:18:00
    Я пробовал скрипт, но безрезультатно. Он один раз работал, но тело письма было пустым. Потом я начал заново и вставил его в скрипт снова, а теперь я вообще никаких писем не получаю. Я могу отправлять тестовые письма и делать ежедневные бэкапы из своего роутера, так что настройки почты верные.

    Скрипт для проверки конкретных новых логов и отправки уведомлений по электронной почте.
    Протестировано на RouterOS v5.7+
    контейнер для отслеживания времени последней обнаруженной метки:
    :global lastTime;
    find log entries where the message contains “logged in” or “login failure”
    :local currentBuf [ :toarray [ /log find message~“logged in” || message~“login failure” ] ] ;
    получить количество логов:
    :local currentLineCount [ :len $currentBuf ] ;
    если логи были найдены, продолжить
    if ($currentLineCount > 0) do={
    исходя из количества записей, получить время последней записи
    :local currentTime “$[ /log get [ :pick $currentBuf ($currentLineCount -1) ] time ]”;
    проверить длину currentTime, если длина равна 15, лог из предыдущего дня и начинается с месяца/дня
    :if ([:len $currentTime] = 15 ) do={
    обрезать currentTime, чтобы остались только время xx:xx:xx
    :set currentTime [ :pick $currentTime 7 15 ];
    }
    форматировать вывод для тела письма, включая метку времени и сообщение лога
    :local output “$currentTime $[/log get [ :pick $currentBuf ($currentLineCount-1) ] message ]”;
    функция отправки email
    :local sndEmail [:parse "/tool e-mail send to=> eugene@wan4u.co.za > subject="MikroTik alert $currentTime" body="$output"];
    функция звукового сигнала
    :local doBeep [:parse “:beep;:delay 150ms;:beep;”];
    если метка времени не была установлена, длина будет равна 0 (после перезагрузки и т.д.)
    :if ([:len $lastTime] < 1 ) do={
    обновить lastTime, чтобы соответствовать currentTime
    :set lastTime $currentTime ;
    отправить email и подать звуковой сигнал $sndEmail; $doBeep;
    если lastTime была установлена, продолжить
    } else={
    если lastTime не соответствует метке времени последней записи
    :if ( $lastTime != $currentTime ) do={
    обновить lastTime, чтобы соответствовать currentTime
    :set lastTime $currentTime ;
    отправить email и подать звуковой сигнал $sndEmail; $doBeep;
    }
    }
    }

    Есть какие-нибудь идеи, что не так со скриптом?
     
     
     
    boen_robot
    Guest
    #3
    0
    17.09.2013 13:32:00
    Кажется, в строке письма не хватает кавычек. То есть, вместо `:local sndEmail [:parse "/tool e-mail send to=eugene@wan4u.co.za subject=\"MikroTik alert $currentTime\" body=\"$output\""];` должно быть `:local sndEmail [:parse "/tool e-mail send to=eugene@wan4u.co.za subject=\"MikroTik alert $currentTime\" body=\"$output\""];`
     
     
     
    Sadam4090
    Guest
    #4
    0
    23.09.2013 11:29:00
    Спасибо, теперь работает. Ещё один вопрос. У меня на Mikrotik работает PPPOE-сервер, но каждый раз, когда пользователь аутентифицируется через PPPOE, я получаю об этом письмо. Как это можно отменить? С уважением.
     
     
     
    skot
    Guest
    #5
    0
    24.09.2013 03:28:00
    Что пишет один из логов PPPoE, когда кто-то входит в систему?
     
     
     
    skot
    Guest
    #6
    0
    24.09.2013 20:30:00
    Чтобы исключить некоторые записи из логов, замените эту строку в исходном скрипте: :local currentBuf [:toarray [/log find message~“logged in” || message~“login failure”]]; На это: :local removeThese {“PPPoE”;“any strings you want”} :local tempBuf [:toarray [/log find message~“logged in” || message~“login failure”]] :local currentBuf “”; :set currentBuf [:toarray $currentBuf] :foreach i in=$tempBuf do={ :local toggle 1 :foreach j in=$removeThese do={ :if ([:typeof [:find [/log get $i message] “$j”]] = “num”) do={ :set toggle 0 } } :if ($toggle = 1) do={ :set currentBuf ( $currentBuf , $i) } }Этот скрипт будет искать все логи "logged in" и "login failure", которые были найдены, и исключать любые, которые содержат строки, найденные в массиве removeThese.
     
     
     
    Sadam4090
    Guest
    #7
    0
    25.09.2013 09:15:00
    Привет! Спасибо, кажется, именно так и есть.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры