Stupid House

Резервное копирование MikroTik


mikrotik backup резервное копирование

Как гласит народная мудрость: существует два типа системных администраторов, те, которые еще не делают backup и те, кто уже его делает. Для устройств MikroTik иметь резервную копию с последними настройками тоже актуально т.к. устройство может выйти из строя или самый распространенный случай, когда хочешь сделать какие-то настройки по-быстрому, но что-то пошло не так.

Резервные копии в MikroTik бывают двух видов:

  1. Backup самого устройства, хранит в себе все настройки устройства, пользователей, пароли, сертификаты. Восстановление возможно только на том устройстве, на котором оно было создано. Восстановление на другом устройстве такой же модели возможно, но не желательно, надо понимать, что восстановятся абсолютно все настройки, такие как MAC адреса интерфейсов, это может привести к тому, что в сети появится два одинаковых устройства со всеми вытекающими. Восстановление на другом устройстве не гарантируется и нежелательно, ввиду разных конфигураций устройств и разном железе.
  2. Экспорт конфигурации. Экспортируются все настройки устройства кроме паролей пользователей, информации о железе (например, MAC адресов), установленных и выпущенных сертификатов. Файл формируется в виде скрипта, который можно выполнить на другом устройстве MikroTik. При запуске на другом устройстве не схожей конфигурации возможны появления ошибок, таких как некоторые интерфейсы не будут найдены.

Первый вариант подходит для полного восстановления состояния устройства на момент создания резервной копии. Отлично подходит для создания точки отката при настройке устройства. При создании есть возможность зашифровать backup с помощью пароля. 

Второй вариант подходит если необходимо перенести конфигурацию на другое устройство, не обязательно такой же конфигурации. Отлично подходит для настройки устройств с типовой конфигурацией или замене одного устройства на другое.

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

 

Создание резервных копий вручную

#1. Здесь все просто, в программе WinBox переходим в меню Files и нажимаем кнопку Backup, в открывшемся окне в поле Name вводим название для файла резервной копии, по необходимости в поле Password вводим пароль, которым будет зашифрован файл, в поле Encryption выбираем тип шифрования. Что бы файл не шифровался необходимо выбрать опцию Don't Encrypt, если данная настройка не будет выбрана и не введен пароль для шифрования, то файл будет зашифрован паролем текущего пользователя.

mikrotik create single backup

Команда для создания резервной копии:

/system backup save name=backup_RBD52G password=1234567890

Файл резервной копии создается в корне файловой системы с расширением .backup. На устройствах с малым количеством flash памяти все файлы, находящиеся в корне при перезагрузке устройства, удаляются, в том числе и файлы backup, во избежание утери файла его необходимо перенести в любую папку.

mikrotik move single backup

Для создания файла резервной копии сразу в папке необходимо указать полный путь:

/system backup save name=flash/backup_RBD52G password=1234567890

 

ВНИМАНИЕ! Если указанный файл резервной копии уже существует, то он будет перезаписан без предупреждения.

#2. Для сохранения текущей конфигурации в файл используется команда export вводимая в терминале:

export file=config_RBD52G

Выгруженная конфигурация сохраняется в файл с расширением .rsc.

mikrotik export configuration

Сохраненный файл конфигурации в корне файловой системы, так же, как и остальные файлы, на устройствах с малой flash памятью удается при перезагрузке, поэтому его необходимо перенести или сразу создавать в папке.

Для надежности сохранения важных резервных копий сохраняем их на компьютере или другом надежном месте, выделив файл в WinBox и перетащив его в нужную папку компьютера или другого хранилища.

 

Создание резервных копий по расписанию

Создаем скрипт выполняющий резервную копию устройства и файл с выгруженной конфигурацией. Т.к. резервных копий много не бывает, то, если файлы уже существуют, они будут переименованы. Что бы не плодить много файлов резервных копий на устройстве, особенно это актуально для устройств с небольшой flash памятью, файлы, которые уже были переименованы во время предыдущего выполнения скрипта будут удалены.

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

Включаем сервис FTP, если он отключен, в меню IP -> Services. Для безопасности сервиса в поле Available From или в Firewall указываем с каких адресов можно заходить на FTP, обязательно указываем loopback адрес 127.0.0.1, для доступа backup скрипта и возможности копирования. Способ ограничения доступа (средствами сервиса FTP или Firewall) каждый выбирает сам лучший вариант для себя.

mikrotik enable ftp service

В меню System -> Users на вкладке Groups создаем группу доступа к FTP сервису, в параметрах Policies указываем только ftp, read и sensitive.

mikrotik create ftp access group

В том же меню на вкладке Users создаем пользователя для доступа к FTP, группу доступа Group выбираем созданную ранее.

mikrotik create ftp user

Файлы резервных копий будут храниться в папке backup, создать папку средствами MikroTik невозможно, поэтому открываем проводник на компьютере, создаем папку и перетаскиваем ее в раздел Files при помощи Drag and Drop.

В меню System -> Scripts создаем новый скрипт. В поле Name вводим наименование скрипта, в поле Source сам скрипт:

:local FILENAMEBACKUP;
:local FILENAMEBACKUPRSC;
:local FILENAMEBACKUPprev;
:local FILENAMEBACKUPRSCprev;
:local FTPUSERNAME;
:local FTPPASSWD;

:set FILENAMEBACKUP "flash/backup/backup_RBD52G.backup";
:set FILENAMEBACKUPRSC "flash/backup/backup_RBD52G.rsc";
:set FILENAMEBACKUPprev "$FILENAMEBACKUP.0";
:set FILENAMEBACKUPRSCprev "$FILENAMEBACKUPRSC.0";

:set FTPUSERNAME "ftpuser";
:set FTPPASSWD "ftppasswd";

:if ([:len [/file find name=$FILENAMEBACKUPprev]] > 0) do={ /file remove $FILENAMEBACKUPprev; }

:if ([:len [/file find name=$FILENAMEBACKUP]] > 0) do={
/tool fetch address=127.0.0.1 mode=ftp user=$FTPUSERNAME password=$FTPPASSWD src-path=$FILENAMEBACKUP dst-path=$FILENAMEBACKUPprev;
/file remove $FILENAMEBACKUP;
}

:if ([:len [/file find name=$FILENAMEBACKUPRSCprev]] > 0) do={ /file remove $FILENAMEBACKUPRSCprev; }

:if ([:len [/file find name=$FILENAMEBACKUPRSC]] > 0) do={
/tool fetch address=127.0.0.1 mode=ftp user=$FTPUSERNAME password=$FTPPASSWD src-path=$FILENAMEBACKUPRSC dst-path=$FILENAMEBACKUPRSCprev;
/file remove $FILENAMEBACKUPRSC;
}

/system backup save name=$FILENAMEBACKUP;
/export file=$FILENAMEBACKUPRSC;

Первая часть скрипта, начинающаяся с :local - объявление переменных.

Вторая часть, начинающаяся с :set - присваивание значений объявленным переменным, где:

  • FILENAMEBACKUP - полный путь к файлу резервной копии устройства.
  • FILENAMEBACKUPRSC - полный путь к файлу выгружаемой конфигурации.
  • FILENAMEBACKUPprev - полный путь к файлу резервной копии устройства выполненной ранее.
  • FILENAMEBACKUPRSCprev - полный путь к файлу выгружаемой конфигурации выполненной ранее.
  • FTPUSERNAME - пользователь с доступом к FTP серверу.
  • FTPPASSWD - пароль пользователя FTP.

Далее ищется файл с расширением .0 сделанный две резервные копии назад и удаляется если найден, затем ищется файл резервной копии и через FTP сервер создается его копия с другим именем, а оригинал удаляется. Аналогичные действия делаются с файлами конфигурации. В конце выполняется резервное копирование.

mikrotik create backup script

Нажимаем кнопку Apply для сохранения скрипта и кнопку Run Script для запуска и проверки выполнения. После выполнения в меню Files должно появиться два свежих файла резервной копии. Нажимаем кнопку Run Script еще раз и предыдущие файлы должны переименоваться в файлы с расширением .0 и создаться два свежих файла резервной копии.

mikrotik backup files

В меню System -> Scheduler создаем расписание для запуска скрипта. В поле Name пишем название задания, в поле Start Time время выполнения, в поле Interval периодичность запуска расписания, например, резервная копия будет создаваться каждые 7 дней. В поле On Event прописываем запуск созданного ранее скрипта.

/system script run scr.backup_RBD52G
mikrotik backup schedule

Нажимаем кнопку OK, проверяем что расписание работает правильно.

Для повышения надежности хранения резервных копий созданные файлы рекомендуется скопировать в еще одно место хранения. Так как на MikroTik ранее был активирован сервис FTP, то для доступа к файлам backup можно использовать его. Пример скрипта для Unix систем, создадим файл /usr/local/scripts/copy_mikrotik_backups:

$ sudo touch /usr/local/scripts/copy_mikrotik_backups
$ sudo chmod 774 /usr/local/scripts/copy_mikrotik_backups

Заполним его скриптом:

#!/bin/sh

# Папка для хранения backup'ов
backup_storage_dir="/var/backups/userbackups"

# Пользователь и пароль для доступа к устройству
mikrotik_ftp_user="ftpuser"
mikrotik_ftp_pass="ftppasswd"

# Адрес устройства
device_addr="192.168.22.1"

# ========>

# Если временная папка существует, то удаляем
if [ -d $backup_storage_dir/$device_addr ]
then
    rm -rf $backup_storage_dir/$device_addr
fi

# Копирование данных
wget -P $backup_storage_dir -r "ftp://"$mikrotik_ftp_user:$mikrotik_ftp_pass@$device_addr/"flash/backup"

# Архивирование
backup_arch_filename=$device_addr"-"`date +%Y-%m-%d`.tar.gz
tar -cvzpf $backup_storage_dir/$backup_arch_filename $backup_storage_dir/$device_addr
    
# Установка прав
chown nobody:nobody $backup_storage_dir/$backup_arch_filename
chmod 664 $backup_storage_dir/$backup_arch_filename

# Удаляем временную папку
rm -rf $backup_storage_dir/$device_addr

exit 0

В файл cron добавляем расписание выполнения созданного скрипта:

00 01 * * 5 /usr/local/scripts/copy_mikrotik_backups >> /dev/null

 

Восстановление устройства из резервной копии

Для восстановления MikroTik из резервной копии устройства копируем файл в раздел Files, выделяем его и нажимаем кнопку Restore. Помним, что backup предназначен только для того устройства, на котором оно создавалось, восстановление на другом устройстве не желательно и не гарантировано.

mikrotik restore from backup

Для восстановления устройства из файла конфигурации предварительно необходимо сбросить настройки в меню System -> Reset Configuration. По необходимости не забываем сохранить список пользователей. Импорт файла конфигурации:

import file-name=flash/backup/backup_RBD52G.rsc

Сброс настроек с сохранением списка пользователей и последующим импортом конфигурации из файла одной командой:

system reset-configuration keep-users=yes no-defaults=yes skip-backup=yes run-after-reset=flas
h/backup/backup_RBD52G.rsc

Если необходимо восстановить конфигурацию на другом устройстве с отличной конфигурацией железа, то восстановление лучше делать частями, копируя необходимые команды из файла и вставляя их в терминале.

Tags:
Автор: muxa, 26.02.2021
Войдите или зарегистрируйтесь, чтобы иметь возможность оставлять комментарии