/mnt/backup
にあるリモートストレージのバックアップを検討してくださいserver
。
Borg ユーザーでない場合、リポジトリは複数のアーカイブで構成されます。バックアップが実行されるたびにアーカイブが作成されます。それでは、特定のアーカイブを抽出したいとしましょう。単純化のために最新のアーカイブを抽出します。
現在私がする方法は、リモートリポジトリからアーカイブリストを取得し、その名前を配列に保存することですmailarchives
。次のようになります。
mapfile -t mailarchives < <(borg list --short 'faheem@server:/mnt/backup')
次に(最新のアーカイブ)からすべてのファイルを抽出し、mailarchive[-1]
アーカイブが有効であり、アーカイブから復元できることを確認しました。次のようになります。
borg extract -n 'faheem@server:/mnt/backup'::"${mailarchives[-1]}"
しかし、これはすべてをローカルにコピーするために多くのデータを使用します。したがって、私の質問は、これらすべての操作をリモートで実行し、結果(成功または失敗)のみをローカルに送信できるかどうかですssh
。私はこれが可能でなければならないと思いますが、正確にどうなるかはわかりません。
より簡単な例は次のとおりです。
borg check faheem@server:/mnt/backup
また、何らかの理由で多くのデータを消費します。
さらに、見た目にもかかわらず、この質問は実際にBorgbackupに限定されていません。より一般的に言えば、リモートコンピュータでスキャンを実行したいのですが、通常はローカルに多くのデータをダウンロードする必要がある場合は、このスキャンをリモートで実行できますか?成功または失敗の結果をローカルに渡すだけですか?
最後に、Borgのメイン/リード開発者が残したメモです。
ThomasWaldmann> faheem: borg は成功時 0、警告時 1、エラー時 2 を返します。
答え1
実際の答えは、バックアップを「確認」する方法と、バックアップツールの検証実行機能によって異なります。
私はあなたがborg
これを使用していると仮定しており、borg check
それはあなたにとって十分です。特定のバックアップ確認要件が異なる場合は、質問を修正してください。
リモートで実行borg
:
リモートで実行できるようにするには、borg check
1)リモートサーバーでコマンドを実行できる必要があり、2)borg
そのコマンドがリモートサーバーにインストールされている必要があります。これはおそらく最も一般的な設定ですが、代わりに使用できます(ストレージはローカルにマウントされたリモートボリュームにあります。たとえば、次のように使用しますsshfs
)。
リポジトリが次の場合暗号化されていない次のコマンドを使用して確認できます。
$ ssh user@host 'borg --show-rc check /path/to/repo'
borg
ローカルコンピュータではなくリモートサーバーで実行されます。この--show-rc
オプションはborg
終了コードを出力し、ローカルコンソールに表示されます(標準出力がリダイレクトされます)。追加情報を取得するオプションを--verbose
追加できます。リポジトリからすべてのデータを抽出し、解凍してリモートで確認するオプションを追加することもできます。--progress
--verify-data
borg check user@server:/path/to/repo/
ローカルで実行すると、--verify-data
このオプションがなくてもリポジトリ内のすべての圧縮データがリモートからローカルに送信されます。
borg
文書がデフォルトでローカルに実行されるのは、おそらく推奨設定borg
に暗号化が含まれているため、セキュリティ上の理由から、暗号化/暗号化解除はローカルでのみ実行する必要があるためです。
リポジトリが次の場合暗号化:
- 選んだら鍵ファイルの暗号化、リモートプロセスにキーファイルを提供する必要があります。これは通常
~/.config/borg/keys/key_name
、リモートサーバーの同じパスにコピーすることを意味します(代わりに公式文書を参照)。 - 選んだら再暗号化、リモートプロセスでパスワードを要求する必要があります。
リモートプロセスがパスワードを要求するには、リモートサーバーに疑似端末を割り当てるオプション呼び出しをssh
使用する必要があります。-t
$ ssh -t user@host 'borg --show-rc check /path/to/repo'
重要なセキュリティに関する考慮事項:
暗号化されたストレージは、部分的に信頼できるサーバー、つまりデータが削除または失われないように十分に信頼できますが、実際にデータを表示したくないサーバーを使用できます。
リモートサーバーを完全に信頼していない場合は、暗号化キーおよび/またはパスワードを提供したくありません。これにより、アーカイブとデータをリモートで確認できなくなります。
リポジトリは復号化なしでのみ確認できます。borg check --repository-only
これは、呼び出し時に発生します。データブロックは確認されません。詳細については、オンラインマニュアルを参照してください。
答え2
borg check
これが必要な場合は、大量のserver
データ転送を避けるために直接実行できますか?おそらく私はあなたが達成したいものが何であるかを混乱させるでしょう。次のようになります。
ssh faheem@server
screen # so you can resume after disconnect (optional)
borg check /mnt/backup
一方、ファイルが大丈夫であるというBorgの主張を信頼するのではなく、実際にファイルを直接確認したい場合は、次のようにします。
- SSH経由でサーバーに
- サーバーの一時ディレクトリにアーカイブを解凍しました(したがってサーバーリポジトリは使用されますが、データのアップロード/ダウンロードは使用されません)。
hashdeep
各ファイルのハッシュ計算などのツールを使用します。- サーバーの一時ディレクトリの削除
- ハッシュファイルのダウンロード
- ハッシュ値を実際のファイルと比較
私の提案が距離が離れているなら、あなたが望むものが何であるかを私にもっとよく説明することができます。