Αυτόματη επαναφορά της τελευταίας αποθηκευμένης διαμόρφωσης στους δρομολογητές Mikrotik

Πολλοί έχουν συναντήσει μια υπέροχη δυνατότητα, για παράδειγμα, σε διακόπτες HPE - εάν για κάποιο λόγο η διαμόρφωση δεν αποθηκευτεί χειροκίνητα, μετά από επανεκκίνηση, η προηγούμενη αποθηκευμένη διαμόρφωση επαναφέρεται. Η τεχνολογία είναι κάπως αδίστακτη (ξέχασα να τη σώσω - κάντε το ξανά), αλλά δίκαιη και αξιόπιστη.

Αλλά στο Mikrotik, δεν υπάρχει τέτοια λειτουργία στη βάση δεδομένων, αν και το σήμα είναι γνωστό εδώ και πολύ καιρό: "Η απομακρυσμένη ρύθμιση ενός δρομολογητή σημαίνει μακρύ ταξίδι". Και είναι πολύ εύκολο να μετατρέψετε ακόμη και έναν κοντινό δρομολογητή σε "τούβλο πριν την επαναφορά".

Παραδόξως, δεν βρήκα ούτε ένα εγχειρίδιο για αυτό το θέμα, οπότε έπρεπε να το κάνω με το χέρι.

Το πρώτο πράγμα που κάνουμε είναι να δημιουργήσουμε ένα σενάριο για τη δημιουργία ενός αντιγράφου ασφαλείας της διαμόρφωσης. Στο μέλλον θα «σώσουμε» το κράτος με αυτό το σενάριο.

Ας πάμε στο Σύστημα -> Σενάρια και δημιουργήστε ένα σενάριο, για παράδειγμα, "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 script run full_restore

Στη συνέχεια, εκτελέστε το σενάριο που αποθηκεύει τη διαμόρφωση! Δεν θέλουμε να τα ξανακάνουμε όλα αυτά, σωστά;

Προσθέτουμε μερικά «σκουπίδια» στις ρυθμίσεις για να ελέγξουμε ή να διαγράψουμε κάτι σημαντικό και, τέλος, να προσπαθήσουμε να επανεκκινήσουμε το δρομολογητή.

Ναι, πολλοί πιθανότατα θα πουν: "Υπάρχει ασφαλής λειτουργία!" Ωστόσο, δεν θα λειτουργήσει εάν, ως αποτέλεσμα της εργασίας, πρέπει να συνδεθείτε ξανά στο δρομολογητή (για παράδειγμα, εάν αλλάξετε τη διεύθυνση ή τις παραμέτρους του δικτύου wifi μέσω του οποίου είστε συνδεδεμένοι). Και δεν πρέπει να ξεχνάτε τη δυνατότητα "ξεχασμού" να ενεργοποιήσετε αυτήν τη λειτουργία.

Υ.Γ. Το κύριο πράγμα τώρα είναι να μην ξεχάσετε να "αποθηκεύσετε".

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο