Pull to refresh

Mikrotik RouterOS log/backup to email

Reading time 2 min
Views 52K
Хочу поделиться своим скриптом бэкапа конфигурации и отсылки логов на почту с 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
Tags:
Hubs:
+8
Comments 4
Comments Comments 4

Articles