Автоматическая отправка бэкапа (резервной копии) MikroTik на почту

Автоматическая отправка бэкапа (резервной копии) MikroTik на почту

Пока оборудование работает стабильно практически никто не задумывается о резервном копировании. Но бывают ситуации когда при малейших изменениях в конфиге оборудование перестает работать стабильно и многие настройки приходится восстанавливать. Чтобы избежать подобных ситуаций и упростить себе жизнь - настройте один раз MikroTik на автоматический бэкап с последующим отправлением файлов на почту.

Открываем System(1)-> Scripts(2)и добавляем новый скрипт (3). Мы его назвали backup_email(4), у вас он может называться как угодно.

В поле Source(5)вставляем сам скрипт:

{

: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.yandex.ru"];

: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.";

}

Рассмотрим поэтапно,что делает этот скрипт.

  1. Очищает кэш DNS (это необходимо в том случае, если адрес недействительный).

  2. Удаляет старые файлы бэкапов, чтобы не забивалась память аналогичными файлами.

  3. Создает файл бэкапа, но только для восстановления настроек на устройстве, на котором он создан.

  4. Отправляет письмо с файлом бэкапа на заданный e-mail адрес.

  5. Создает файл скрипта настроек *.rsc. Это читабельный текстовый файл, для экспортирования на идентичный роутер.

  6. Отправляет письмо с файлом скрипта настроек на заданный e-mail адрес.

В примере мы используем скрипт дляЯндекс Почты. Чтобы воспользоваться сервисомGmail, необходимо заменить в скриптеsmtp.yandex.ruнаsmtp.gmail.com. ДляРамблер Почты, замените в скриптеsmtp.yandex.ruнаmail.rambler.ru.

Обращаем ваше внимание на эти строки:

:local Eaccount [/tool e-mail get user];

:local pass [/tool e-mail get password];

В скрипте вы указываете свой почтовый ящик с паролем, куда должны автоматически отправляться бэкапы, следующим образом:

:local Eaccount ПОЧТА@yandex.ru;

:local pass ВАШ ПАРОЛЬ;

Если вы оставите строки без изменений, то скрипт будет обращаться к данным, указанным в настройках MikroTik. Настроить их можно здесь Tools(6)-> Email(7).

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

Открываем System(на картинке ниже это цифра 8)-> Scheduler(9), добавляем новую задачу(10). Даем ей наименование (у нас –AutoBackup (11). Указываем дату начала и промежуток, в который будет срабатывать скрипт(12). У нас бэкап будет происходить раз в 7 дней, с последующей отправкой файла на почту. В поле On Event пишем название вашего скрипта (у нас скрипт называется backup_email, соответственно, его и указали(13).

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

Last updated