Tutoriel Linux

Restic : 現在のバージョンを上書きせずにファイルを復元する

Débutant2 min de lecture

削除または急速に置き換えられた設定ファイルは、サービスを不適切な状態に戻す可能性があります。Resticを使用する場合、落とし穴は現在のパスに直接復元することです。まずファイルをテストディレクトリにリカバリーし、それをコピーする前に比較してください。

この方法は既に初期化され、通常の資格情報でアクセスできるリポジトリから始まります。特定のファイルをターゲットとし、たとえば/etc/mon-service/config.iniのように指定し、チェックが完了するまで現在使用されているバージョンに影響を及ぼさないようにします。

セキュアなアーカイブからテストディレクトリに復元されたファイル
別のディレクトリに復元することで、アクティブなバージョンを変更する前にファイルを比較できます。

スナップショットと復元パスの特定

バックアップと同じ変数または環境ファイルを使用してリポジトリを設定します。Bash履歴にリポジトリのパスワードをコピペするのは避けてください。Resticサービスがすでにスクリプトまたはsystemdユニット内で実行されている場合は、復元のために別の認証メカニズムを作成するのではなく、そのメカニズムを再利用してください。

まず、探しているパスを含むスナップショットをリストします:

export RESTIC_REPOSITORY=/srv/restic-repo
restic snapshots --path /etc/mon-service/config.ini

出力には、識別子、日付、ホスト、および保存されたパスが表示されます。複数のマシンやバックアップがこのファイルを含む可能性がある場合は、latestの代わりに特定の識別子を選択してください。この例では、8f3a1c2dを選択した識別子に置き換えます。

SNAPSHOT=8f3a1c2d
restic ls "$SNAPSHOT" --path /etc/mon-service/config.ini

restic lsは、何も書き込む前にアーカイブ内のパスが存在することを確認します。一致する結果がない場合は、そこで停止してください。入力ミスしたパスや、事故の後に取得されたスナップショットは、再度の復元では修正されません。

テストディレクトリに復元

確認用の専用ディレクトリを作成します。生産用のマウントポイントや対象サービスのフォルダであってはなりません:

sudo install -d -m 0700 /srv/restore-restic-test
restic restore "$SNAPSHOT" 
  --target /srv/restore-restic-test 
  --include /etc/mon-service/config.ini

Resticはターゲットの下にツリー構造を再作成します。したがって、復元されたファイルはここにあります:

/srv/restore-restic-test/etc/mon-service/config.ini

この別のディレクトリは、テスト中に/etc/mon-service/config.iniを上書きするのを防ぎます。サービスファイル、設定キー、またはエクスポートされたデータベースにとって保持すべき選択肢です。ルートへの直接復元は、スナップショットのエラーを本番インシデントに変えます。

サービス再開前にファイルを比較する

まず権限、サイズ、差異を確認してください。diffコマンドはファイルを変更しません:

sudo stat /etc/mon-service/config.ini
sudo stat /srv/restore-restic-test/etc/mon-service/config.ini
sudo diff -u 
  /etc/mon-service/config.ini 
  /srv/restore-restic-test/etc/mon-service/config.ini

出力のないdiffはコード0を返します:2つの内容は同一です。削除された行と追加された行が表示された場合は、決定する前にそれらを確認してください。古いアドレス、ポート、または期限切れの秘密がファイル変更の正確な理由である可能性があります。

復元されたコピーが正しい場合は、まずアクティブなバージョンをバックアップし、その後短いメンテナンスウィンドウの中で置き換えます。そして、systemctl status mon-serviceや関連するログなど、ソフトウェアに適したコマンドを使用して構文とサービスの状態を確認してください。

復元の確認は、バックアップと同じ注意を払う価値があります。ガイド<а href="https://www.linuxencaja.net/borgbackup-linux-verifier-restauration/">BorgBackupは、生産外での抽出に同じロジックを適用します。Resticを起動する前にパスを見つけるために、<а href="https://www.linuxencaja.net/find-linux-trouver-fichier/">Linuxのfindコマンドは、誤った位置に同名のファイルを復元するのを避けます。

単一のファイルを復元しない時

孤立したファイルは、削除された設定や上書きされたバージョンには十分ですが、データベース、ファイル、トランザクションログの間で状態を分散するアプリケーションには常に効果的ではありません。この場合、一貫したセットをVMまたは孤立したディレクトリに復元し、その後、サービスを停止するかテストコピーで手続きを確認します。

Resticの復元に関するドキュメントは、スナップショット、パス、宛先ディレクトリのターゲティングを説明しています。最終確認までテストディレクトリを保持してください。確認後に削除してもResticのリポジトリやアクティブファイルには影響を与えません。

sudo apt update && sudo apt upgrade