Автоматичне відновлення останньої збереженої конфігурації у роутерах 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={ /file rem restore_on_reboot.txt; system backup load name=Backup_full password=""} else={ /file print file=restore_on_reboot.txt }

Найкраще перевірити роботу скриптів на цьому етапі, перед додаванням завдання до планувальника.

Якщо всі ок - приступаємо до третьої та останньої дії - додаємо в планувальник завдання запуску скрипта при кожному завантаженні.

Ідемо в System -> Scheduler і додаємо нове завдання.
В полі Час початку вказуємо введення в експлуатацію (так, так і пишемо, літерами)
В полі На подію пишемо
/system script run full_restore

Далі, запускаємо скрипт, що зберігає конфіг! Ми ж не хочемо робити це все ще раз?

Додаємо якесь «сміття» в налаштування для перевірки, або видаляємо щось важливе і нарешті пробуємо перезавантажити роутер.

Так, багато хто напевно скажуть: «Є ж режим safe mode!». Однак, він не підійде, якщо в результаті робіт вам доведеться перепідключатися до роутера (наприклад, якщо ви зміните адресу або параметри wifi-мережі, через яку ви підключені). І про можливість «забути» включити цей режим теж не варто забувати.

PS Головне тепер не забувати «зберігатися».

Джерело: habr.com

Додати коментар або відгук