Mikrotik RouterOS log/backup to email

  • Tutorial
Хочу поделиться своим скриптом бэкапа конфигурации и отсылки логов на почту с Mikrotik RouterBoard RB750GL (в моём случае 5.14, firmware 2.38). Думаю подойдёт к большинству устройств на этой славной ОС. Преимущество подхода в том, что сам файл конфигурации приходит в качестве приложенного к письму с логами файла. А логи находятся прямо в письме — не в приложении.

#:log info "///----> Я начал бэкапиться" (расскоменчиваю эти строки для дебага)
:global backupfile ([/system identity get name]. ".backup") #задаю переменную
:if ([/file find name=$backupfile] != "") do={/file rem $backupfile} #удаляю, если файл уже существует
:delay 2s

#:log info "///----> Подготавливаю лог для отправки"

:global logMessages;
:set logMessages ""
:foreach i in=[/log find ] do={
:set logMessages ($logMessages. [/log get $i time ]. " ");
:set logMessages ($logMessages. [/log get $i message ]);
:set logMessages ($logMessages. "\n")
}

#:log info "///----> Создаю бэкап"
/system backup save name=$backupfile
#:log info "///----> Жду 5 сек. завершения процедуры"
:delay 5s
#:log info "///----> Посылаю конфиг на e-mail" (следующий код — одна длинная строка!)
/tool e-mail send to=mail@examle.com subject=(«router daily backup») file=$backupfile body=(«Бэкап конфигурационного файла маршрутизатора ». [/system identity get name]. ". \nВыполнен: ". [/system clock get time]. " ". \ [/system clock get date]. " \n____________________\n \nUptime: ". [/system resource get uptime]. "\nСвободно оперативки: ". [/system resource get free-memory]. " из ". [/system resource get total-memory]. " Кбайт. \nСвободное место: ". [/system resource get free-hdd-space]. " из ". [/system resource get total-hdd-space]. " Кбайт. \nBad-блоки: ". [/system resource get bad-blocks]. " %. \nЗагрузка процессора на данный момент: ". [/system resource get cpu-load]. " % \n____________________\n \nПоследние записи в логе: \n \n". $logMessages. " \n____________________ \n". [/system identity get name])

#:log info "///----> Жду 10 сек. пока письмо отправится"
:delay 10s
/file remove $backupfile
:log info "///----> Бэкап завершён. Файл послан на mail@example.com. Ура!"


Ставлю на еженощное выполнение и в результате вместе с новостями с утра читаю вести с фронта — на почту приходит письмо такого вида

image

Буду рад рекомендациям и советам по усовершенствованию процесса!
via dobryj.ru
  • +8
  • 44,9k
  • 4
Поделиться публикацией

Похожие публикации

Комментарии 4

    0
    Простите, а он сколько строк логов присылает?
    по умолчанию на микротике вроде как 256 строк сохраняется.
    сначала же надо перенастроить на бОльшее количество логов.

    и второе:
    что интересного может быть в логе микротика?
    вот если делать выборку по неудачным попытка входа или еще какие warning сообщения, то да.
      0
      1. Да — столько и шлёт. Поэтому я и пишу «Последние записи в логе». Больше мне не актуально.
      2. Можно настроить вообще уровень логирования в самом устройстве и, возможно, реально повыбирать нужные строчки с помощью скрипта. Я не заморачивался — мне интересно всё — когда были реконнекты, кто когда заходил (несколько человек управляют) и т.п.
      0
      Логи на самом микротике ужасны, лучше настроить на удалённое ведение журнала. А отсылка бэкапа у меня проходит нормально даже без добавления задержки.
        0
        Ну да — это я так — перестраховался :)

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое