Как отправить резервную копию конфигурации и настроек Mikrotik RouterOS на электронную почту (Gmail/Yandex)

Резервная копия конфигурации и настроек Mikrotik RouterOS на электронную почту (Gmail/Yandex)

Золотое правило каждого администратора - создание резервных копий. В данной статье мы рассмотрим небольшой скрипт отсылки резервных копий конфигурации и настроек Mikrotik RouterOS v5.x на электронную почту Gmail.

Для начала заполним пользовательские параметры НАШЕГО почтового ящика:

После этого перейдем в раздел Scripts и добавим наш новый скрипт резервирования настроек и конфигурации:

В открывшемся окне задаем имя скрипта и вставляем ниже приведенный код:

Код скрипта резервирования настроек и конфигурации Mikrotik RouterOS v5.x на электронную почту Gmail:

{
:log info "Starting Backup Script...";
:local sysname [/system identity get name];
:local sysver [/system package get system version];
:log info "Flushing DNS cache...";
/ip dns cache flush;
:delay 2;
:log info "Deleting last Backups...";
:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] \
"$sysname-backup-"]]!="nil") do={/file remove $i}};
:delay 2;
:local smtpserv [:resolve "smtp.gmail.com"];
:local Eaccount [/tool e-mail get user];
:local pass [/tool e-mail get password];
:local backupfile ("$sysname-backup-" . \
[:pick [/system clock get date] 7 11] . [:pick [/system \
clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup");
:log info "Creating new Full Backup file...";
/system backup save name=$backupfile;
:delay 2;
:log info "Sending Full Backup file via E-mail...";
/tool e-mail send from="<$Eaccount>" to=$Eaccount server=$smtpserv \
port=587 user=$Eaccount password=$pass tls=yes file=$backupfile \
subject=("$sysname Full Backup (" . [/system clock get date] . ")") \
body=("$sysname full Backup file see in attachment.\nRouterOS version: \
$sysver\nTime and Date stamp: " . [/system clock get time] . " " . \
[/system clock get date]);
:delay 5;
:local exportfile ("$sysname-backup-" . \
[:pick [/system clock get date] 7 11] . [:pick [/system \
clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc");
:log info "Creating new Setup Script file...";
/export file=$exportfile;
:delay 2;
:log info "Sending Setup Script file via E-mail...";
/tool e-mail send from="<$Eaccount>" to=$Eaccount server=$smtpserv \
port=587 user=$Eaccount password=$pass tls=yes file=$exportfile \
subject=("$sysname Setup Script Backup (" . [/system clock get date] . \
")") body=("$sysname Setup Script file see in attachment.\nRouterOS \
version: $sysver\nTime and Date stamp: " . [/system clock get time] . " \
" . [/system clock get date]);
:delay 5;
:log info "All System Backups emailed successfully.\nBackuping completed.";
}

 

Код скрипта резервирования настроек и конфигурации Mikrotik RouterOS v6.x на электронную почту Gmail:

{
:log info "Starting Backup Script...";
:local sysname [/system identity get name];
:local sysver [/system package get system version];
:log info "Flushing DNS cache...";
/ip dns cache flush;
:delay 2;
:log info "Deleting last Backups...";
:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] \
"$sysname-backup-"]]!="nil") do={/file remove $i}};
:delay 2;
:local smtpserv [:resolve "smtp.gmail.com"];
:local Eaccount [/tool e-mail get user];
:local pass [/tool e-mail get password];
:local backupfile ("$sysname-backup-" . \
[:pick [/system clock get date] 7 11] . [:pick [/system \
clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup");
:log info "Creating new Full Backup file...";
/system backup save name=$backupfile;
:delay 2;
:log info "Sending Full Backup file via E-mail...";
/tool e-mail send from="<$Eaccount>" to=$Eaccount server=$smtpserv \
port=587 user=$Eaccount password=$pass start-tls=yes file=$backupfile \
subject=("$sysname Full Backup (" . [/system clock get date] . ")") \
body=("$sysname full Backup file see in attachment.\nRouterOS version: \
$sysver\nTime and Date stamp: " . [/system clock get time] . " " . \
[/system clock get date]);
:delay 5;
:local exportfile ("$sysname-backup-" . \
[:pick [/system clock get date] 7 11] . [:pick [/system \
clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc");
:log info "Creating new Setup Script file...";
/export verbose file=$exportfile;
:delay 2;
:log info "Sending Setup Script file via E-mail...";
/tool e-mail send from="<$Eaccount>" to=$Eaccount server=$smtpserv \
port=587 user=$Eaccount password=$pass start-tls=yes file=$exportfile \
subject=("$sysname Setup Script Backup (" . [/system clock get date] . \
")") body=("$sysname Setup Script file see in attachment.\nRouterOS \
version: $sysver\nTime and Date stamp: " . [/system clock get time] . " \
" . [/system clock get date]);
:delay 5;
:log info "All System Backups emailed successfully.\nBackuping completed.";
}

Cкрипт выполняет следующее (в порядке очерёдности проведения операций):

  1. Затирает DNS-кэш MikroTik’а – будет надёжнее исключить возможность разрешения DNS-имени сервера исходящей почты Gmail «smtp.gmail.com» в IP-адрес из кэша маршрутизатора - мало ли чего в Google надумают с адресным пространством своих серверов или авария какая (как обычно, в самый неподходящий момент). Бэкап – дело ответственное.
  2. Удаляет файлы бэкапов, созданных при предыдущем запуске данного скрипта – производится во избежание того, чтобы со временем дисковое пространство маршрутизатора не было забито файлами резервных копий. Т.е., единовременно, между запусками вышеприведённых скриптов во внутреннем хранилище самого роутера на базе RouterOS хранится только одна, самая последняя резервная копия (два файла).
  3. Создает файл бэкапа *.backup.
  4. Отправляет сообщение с прикреплённым к нему файлом бэкапа на заданный e-mail-адрес.
  5. Создает файл скрипта настроек *.rsc по команде export.
  6. Отправляет сообщение с прикреплённым к нему файлом скрипта настроек на заданный e-mail-адрес.

Параллельно в системном журнале производится логирование этапов работы запущенного скрипта.
К сожалению RouterOS пока не умеет прикреплять к сообщению более одного файла за раз, поэтому каждый файл приходится отправлять индивидуально.
В результате срабатывания скрипта, на указанный вами почтовый адрес придут два сообщения с прикреплёнными к ним файлами.

Теперь осталось добавить задание в планировщик задач, чтобы резервная копия создавалась и отсылалась с заданным промежутком времени.

В нашем примере задан интервал 7 дней, в поле «On Event» - вписываем название нашего скрипта, созданного ранее:

Теперь мы каждые 7 дней будем получать на нашу электронную почту резервные копии конфигурации нашего маршрутизатора Микротик.

Напишите комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *