Многія сутыкаліся з выдатнай функцыяй, напрыклад, на камутатарах 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 і дадаем новую задачу.
У полі Час пачатку паказваем запуск (так, так і пішам, літарамі)
У полі On Event пішам
/system script run full_restore
Далей, запускаем скрыпт які захоўвае канфіг! Мы ж не жадаем рабіць усё гэта яшчэ раз?
Дадаем якое-небудзь "смецце" ў налады для праверкі, альбо выдаляем нешта важнае і нарэшце, спрабуем перазагрузіць роўтэр.
Так, многія напэўна скажуць: "Ёсць жа рэжым safe mode!". Аднак, ён не падыдзе, калі ў выніку работ вам давядзецца перападключацца да роўтара (напрыклад, калі вы памяняеце адрас або параметры wifi-сеткі, праз якую вы падключаны). І пра магчымасць "забыцца" ўключыць гэты рэжым таксама забываць не варта.
PS Галоўнае зараз не забываць «захоўвацца».
Крыніца: habr.com