Автоматическое восстановление последней сохраненной конфигурации в роутерах 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 и добавляем новую задачу.
В поле Start time указываем startup (да, так и пишем, буквами)
В поле On Event пишем
/system script run full_restore

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

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

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

P.S. Главное теперь не забывать «сохраняться».
  • +15
  • 6,7k
  • 9
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 9

    +1
    del
      0
      вместо "/system script run full_restore" в «On event» можно просто указать название скрипта.
      К тому же хорошо бы переписать скрипт с выносом переменных чтоб в процесс не лезть
      Заголовок спойлера
      :local txt «restore_on_reboot.txt»
      :local backup «Backup_full»
      :local password ""
      #################
      :if ([/file find name=$txt] != "") do={ /file rem $txt; system backup load name=$backup password=$password} else={ /file print file=$txt }

      Везде обычные кавычки
        –1
        Лучше такой скрипт использовать —
        /system backup save name=reload
        delay 600
        /system backup load name=reload.backup


        Ибо если настраиваете что-то что далеко и к чему сложно получить доступ, то ждать перезагрузки можно долго.
          +1
          Не забыть вкл/выкл safe mode, не забыть вкл/выкл скрипт бэкапа…
          Есть safe mode и золотое правило — не трогай параметры линка, через который конфигаешь, а если очень надо — делай это находясь на расстоянии MAC-Winbox, всё!)

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

            Почему вы решили, что роутер/свитч/коммутатор должен как-то сам автоматически сохранять изменёные настройки сам по себе?
            Это нормальная функция. Человек должен сам сохранить настройки, если ЕМУ ИХ ДЕЙСТВИТЕЛЬНО НУЖНО СОХРАНИТЬ.

              0

              Для этого в микротиках есть safemode. Гораздо надежнее скрипта. Особенно, если не только доступ можно потерять, но и ребутнуть некому. Это как отложенный ребут на цисках.

                0
                system backup save dont-encrypt=yes name=Backup_full


                Вы забыли про то, что в новых версиях RouterOS «Files» находится в ОЗУ. После перезагрузки всё затирается. А значит в скипте как минимум должен быть путь на флешку — system backup save dont-encrypt=yes name=/flash/Backup_full

                Полностью согласен, что штатного Safe Mode должно быть достаточно. Он проверен временем.
                  0
                  Зависит от модели, а не от версии ROS.
                  0
                  wiki.mikrotik.com/wiki/Manual:Console#Safe_Mode
                  Не поможет ли это? Вроде из коробки работает, сам пользуюсь.

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

                  Самое читаемое