[Из песочницы] Автоматическое восстановление последней сохраненной конфигурации в роутерах 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. Главное теперь не забывать «сохраняться».