私たちは、職場で他のすべてのサーバー(主にLinux)がバックアップを送信するLinuxバックアップサーバーを構成しています。バックアップのサイズは数百GBに達し、何千ものファイルが含まれており、その99%は毎日変わりません。
通常、これはrsyncの完全なユースケースです。残念ながら、私たちの要件の1つは、サーバーがバックアップをアップロードできるように、バックアップサーバーが書き込み専用でなければならないことです。ただし、そのサーバーが破損している場合、バックアップにリモートでアクセスすることはできません。私たちは現在書き込み専用モードで動作するようにvsftpdを設定していますが、毎晩ネットワークを介して数百ギガバイトのデータを転送する必要があることを除いて、うまく機能します。
私が知っている限り、rsyncはリモートファイルをローカルファイルと比較するので、リモートサーバーへの読み書きアクセスが必要です。
私の質問:バックアップサーバーはチェックサムとファイル名を表示できますが、実際のデータは表示できないすべてのモードでrsyncを実行できますか?これはまだ書き込み専用サーバーですが、フルバックアップではなく差分バックアップを実行できることを意味します。
ベストアンサー1
ネットワークトラフィックを減らしたいがローカルディスク容量を無駄にしない場合、新しい解決策はバックアップをローカルに「ミラーリング」してから、rsyncのバッチモードを使用して違いをリモートで送信することです。
緩やかに言えば、次のコマンドを使用してローカルバックアップを作成できます。
rsync --write-batch=foo -a /src/dir/ /localcopy/dir/
これにより、すべての変更を含むファイルと内容を解釈するためにリモートで実行される1行のスクリプトが生成されますfoo
。foo.sh
両方ともリモートデバイスにコピーし、リモートデバイスでスクリプトを実行します。
scp foo foo.sh remote:
ssh remote ./foo.sh /dir/
または必要に応じて:
ssh remote rsync --read-batch=- -a /dir/ <foo
また、見ることができます二重性rsyncの場合はリモートデータを暗号化するため、データを悪用するには暗号化キーも盗む必要があります。