Automatyczne przywracanie ostatniej zapisanej konfiguracji w routerach Mikrotik

Wielu spotkało się z fantastyczną funkcją, np. w przełącznikach HPE — jeśli konfiguracja nie została ręcznie zapisana, po ponownym uruchomieniu przywracana jest poprzednia zapisana konfiguracja. Technologia jest w czymś bezlitosna (zapomniałeś zapisać — rób od nowa), ale sprawiedliwa i niezawodna.

Natomiast w MikroTikach takiej funkcji nie ma, chociaż od dawna znane jest powiedzenie: „usunięta konfiguracja routera — do długiej drogi”. A nawet router obok można bardzo łatwo przekształcić w „cegłę do resetu”.

Jak to dziwnie nie brzmi — nie znalazłem żadnego podręcznika w tej sprawie, musiałem to zrobić ręcznie.

Pierwsze, co robimy — tworzymy skrypt do tworzenia kopii zapasowej konfiguracji. W przyszłości będziemy „zapisywać” stan właśnie tym skryptem.

Przechodzimy do System -> Skrypty i tworzymy skrypt, nazwijmy go „fullbackup” (oczywiście bez cudzysłowów).

system backup save dont-encrypt=yes name=Backup_full

Nie będziemy używać hasła, ponieważ w przeciwnym razie trzeba by je podać w jawnej formie w sąsiednim skrypcie, nie widzę sensu takiej „ochrony”.

Tworzymy drugi skrypt, który będzie przywracał konfigurację przy każdym uruchomieniu. Nazwijmy go „full_restore”.

Ten skrypt jest nieco bardziej złożony. Chodzi o to, że przy przywracaniu konfiguracji również następuje ponowne uruchomienie. Bez użycia jakiegokolwiek mechanizmu kontrolnego otrzymamy cykliczny restart.

Mechanizm kontrolny okazał się nieco „sztywny”, ale za to niezawodny. Przy każdym uruchomieniu skryptu najpierw sprawdzana jest obecność pliku „restore_on_reboot.txt”.
Jeśli taki plik istnieje — oznacza, że wymagana jest przywrócenie z kopii zapasowej. Usuwamy plik i dokonujemy przywrócenia z następującym ponownym uruchomieniem.

Jeśli takiego pliku nie ma — po prostu tworzymy ten plik i nic nie robimy (czyli to już drugie uruchomienie, które następuje po przywróceniu z kopii zapasowej).

: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 }

Najlepiej sprawdzić działanie skryptów na tym etapie, przed dodaniem zadania do harmonogramu.

Jeśli wszystko jest w porządku — przechodzimy do trzeciej i ostatniej czynności — dodajemy do harmonogramu zadanie uruchomienia skryptu przy każdym uruchomieniu.

Przechodzimy do System -> Harmonogram i dodajemy nowe zadanie.
W polu Czas rozpoczęcia wskazujemy startup (tak, piszemy takimi literami)
W polu On Event piszemy
/system script run full_restore

Następnie, uruchamiamy skrypt zapisujący konfigurację! Nie chcemy przecież robić tego wszystkiego jeszcze raz?

Dodajemy jakiś 'śmieć' do ustawień w celu testowania lub usuwamy coś ważnego i na końcu próbujemy zrestartować router.

Tak, wielu pewnie powie: 'Jest tryb awaryjny!'. Jednak nie sprawdzi się on, jeśli w wyniku pracy będziesz musiał ponownie połączyć się z routerem (na przykład, jeśli zmienisz adres lub parametry sieci wifi, przez którą jesteś podłączony). Nie zapominaj także o możliwości 'zapomnienia' o włączeniu tego trybu.

P.S. Najważniejsze teraz to nie zapominać o 'zapisywaniu'.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster