Хабрахабр

[Из песочницы] Автоматическое восстановление последней сохраненной конфигурации в роутерах Mikrotik

Многие сталкивались с замечательной функцией, к примеру, на коммутаторах HPE — если конфиг по какой-то причине не сохранен вручную, после перезагрузки накатывается предыдущий сохраненный конфиг. Технология в чем то безжалостная (забыл сохранить — делай по-новой), но справедливая и надежная.

И даже роутер под боком очень легко превратить в «кирпич до резета». А вот в Микротиках, такой функции в базе нет, хотя давно известна примета: «удаленная настройка роутера — к долгой дороге».

В дальнейшем «сохранять» состояние будем именно этим скриптом. Как то ни странно — не нашел ни одного мануала на этот счет, пришлось делать ручками.
Первое что делаем — создаем скрипт создания резервной копии конфигурации.

Идем в System -> Scripts и создаем скрипт, допустим, «fullbackup» (само-собой без кавычек).

system backup save dont-encrypt=yes name=Backup_full

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

Назовем его «full_restore». Создаем второй скрипт, который будет восстанавливать конфигурацию при каждом запуске.

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

При каждом запуске скрипта, сначала происходит проверка на наличие файла «restore_on_reboot.txt».
Если такой файл есть — значит требуется восстановление из бэкапа. Контрольный механизм получился слегка «дубовый», но зато надежный. Удаляем файл и делаем восстановление с последующей перезагрузкой.

значит это уже вторая загрузка, которая после восстановления из бэкапа). Если такого файла нет — просто создаем этот файл и ничего не делаем (т.е.

:if ([/file find name=restore_on_reboot.txt] != "") do= else={ /file print file=restore_on_reboot.txt }

Лучше всего проверить работу скриптов на этом этапе, перед добавлением задачи в планировщик.

Если все ок — приступаем к третьему и последнему действию — добавляем в планировщик задачу запуска скрипта при каждой загрузке.

Идем в System -> Scheduler и добавляем новую задачу.
В поле Start time указываем startup (да, так и пишем, буквами)
В поле On Event пишем
/system script run full_restore

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

Добавляем какой-нибудь «мусор» в настройки для проверки, либо удаляем что-то важное и наконец, пробуем перезагрузить роутер.

Однако, он не подойдет, если в результате работ вам придется переподключаться к роутеру (например, если вы поменяете адрес или параметры wifi-сети, через которую вы подключены). Да, многие наверное скажут: «Есть же режим safe mode!». И о возможности «забыть» включить этот режим тоже забывать не стоит.

S. P. Главное теперь не забывать «сохраняться».

Показать больше

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

Добавить комментарий

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

Кнопка «Наверх»