Mikrotikルーターに最後に保存された構成の自動復元

たとえば、HPE スイッチなどで多くの人が素晴らしい機能に遭遇したことがあります。何らかの理由で構成が手動で保存されなかった場合、再起動後に以前に保存された構成がロールバックされます。 このテクノロジーはやや冷酷です (保存するのを忘れたので、もう一度やり直してください) が、公平で信頼性があります。

しかし、Mikrotik では、データベースにそのような機能はありません。「ルーターのリモート設定は長い旅を意味する」という兆候は以前から知られていました。 そして、近くにあるルーターさえも「リセット前のブリック」に変えるのは非常に簡単です。

奇妙なことに、この問題に関するマニュアルは一冊も見つからなかったので、手作業で行う必要がありました。

最初に、構成のバックアップ コピーを作成するためのスクリプトを作成します。 将来的には、このスクリプトで状態を「保存」します。

に行く システム -> スクリプト そして、たとえば「fullbackup」などのスクリプトを作成します(もちろん引用符は必要ありません)。

system backup save dont-encrypt=yes name=Backup_full

パスワードは使用しません。そうしないと、隣接するスクリプトで明示的に指定する必要があるためです。そのような「保護」の意味がわかりません。

起動するたびに構成を復元する XNUMX 番目のスクリプトを作成します。 これを「full_restore」と呼びます。

このスクリプトは少し複雑です。 実際、構成が復元されると、再起動も行われます。 制御メカニズムを使用せずに、周期的な再起動が行われます。

制御メカニズムは少し「オーク」であることが判明しましたが、信頼できるものでした。 スクリプトが起動されるたびに、最初に「restore_on_reboot.txt」ファイルの存在がチェックされます。
そのようなファイルが存在する場合は、バックアップからの復元が必要です。 ファイルを削除し、リカバリを行ってから再起動します。

そのようなファイルがない場合は、単にこのファイルを作成し、何も行いません (つまり、これは、バックアップから復元した後、既に XNUMX 回目のダウンロードであることを意味します)。

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

タスクをスケジューラに追加する前に、この段階でスクリプトをテストすることをお勧めします。

すべて問題なければ、最後の XNUMX 番目の手順に進みます。起動するたびにスクリプトを実行するタスクをスケジューラに追加します。

に行く システム -> スケジューラ そして新しいタスクを追加します。
フィールドで 開始時刻 示す スタートアップ (はい、文字ではそう書きます)
フィールドで イベント時 書く
/system script run full_restore

次に 設定を保存するスクリプトを実行してください。 こんなことはもうやりたくないですよね?

設定に「ゴミ」を追加して確認したり、重要なものを削除したりして、最後にルーターを再起動してみます。

はい、多くの人はおそらく「セーフモードがある!」と言うでしょう。 ただし、作業の結果、ルーターに再接続する必要がある場合 (たとえば、接続している Wi-Fi ネットワークのアドレスやパラメーターを変更した場合)、機能しません。 そして、このモードをオンにすることを「忘れる」可能性があることを忘れてはなりません。

PS ここで重要なことは、「保存」を忘れないことです。

出所: habr.com

コメントを追加します