В Cisco есть замечательная консольная команда, которая позволяет вернуть конфигурацию и восстановить связь с удаленно конфигурируемым устройством, если что-то пошло не так.
В MikroTik тоже есть некое подобие, называемое Safe Mode, однако работает оно совсем не так, как хотелось бы. При любом разрыве связи – сразу идёт откат настроек. Это приводит к тому, что сменить IP-адрес или Default gateway на устройстве, используя Safe Mode, невозможно.
Поэтому, как это обычно происходит в микротиках, на помощь приходит скрипт! 🙂
Мой скрипт нацелен на тот случай, когда устройство конфигурируется удалённо и дорога далёкая…
При этом сценарий возврата конфигурации по перезагрузке невозможен по причине того, что MikroTik сохраняет настройки сразу после применения.
Действия следующие.
1) Администратор вручную создает на устройстве бэкап конфига, к которому нужно откатиться в случае чего.
Через Winbox: меню Files, в открывшемся окне сверху нажать кнопку Backup. В окне создания бэкапа в поле Name ввести “safe1” (без кавычек) и выставить галочку Don’t Encrypt:

В командной строке:
/system backup save name=safe1
2) Затем администратор настраивает в шедулере запуск скрипта, приведённого ниже.
:global usersactive [/user active print count-only]
:if (usersactive=0) do={
/system backup load name="safe1.backup" password=""
} else={
:log warning "skip restore, active users found"
}

В поле Start Time нужно выставить время предполагаемого ребута. Дать себе 10-20-30мин на настройку.
В скрипте сделана защита от неожиданного ребута в процессе интерактивного сеанса работы администратора, если он по какой-то причине не успел продлить себе время. Ребута просто не будет, о чём выдастся сообщение в лог.
Учитывая эту особенность скрипта, можно выставить исполнение скрипта с некоторой периодичностью, например 5мин, и тогда, пока активна подключенная сессия, ребута не будет. В то же время, если произойдёт обрыв связи, то в течение 5мин устройство будет перезагружено и восстановлена сохраненная конфигурация.
И, как обычно, главное – не забыть удалить шедулер со скриптом по окончании работ 🙂