10

セキュリティを強化するために、rsnapshotが使用するバックアップディレクトリを2番目の場所にミラーリングしたいと思います。理想的には、ソリューションはsshでrsyncを使用します。ハードリンク(rsnapshotによって作成された)とシンボリックリンクを保持するため、ファイルを削除するため、再帰的にコピーするため、ターゲット内のファイルを削除するためなど、rsyncにどのような引数を提供する必要がありますか?ファイルはすべてext3ファイルシステム上にあります。さらに、ソースが破損した場合に欠陥がミラーに同期される可能性を回避するにはどうすればよいですか?

4

2 に答える 2

7

私はあなたが望むことをするためのオプションは主にrsyncmanページに文書化されていると思います。特に、-Hオプション(--hard-links)はハードリンク検出を有効にし、--deletersyncがソースに存在しない宛先上のものを削除するようにします。だから多分次のようなもの:

rsync -aH --delete /path/to/src/ /path/to/destination

さらに、ソースが破損した場合に欠陥がミラーに同期される可能性を回避するにはどうすればよいですか?

まあ、それはトリッキーです。破損をどのように検出しますか?唯一の本当の解決策は、バックアップのバックアップをずらすことです(つまり、プライマリ宛先に実際のバックアップを実行し、次のバックアップ実行の直前にそれをセカンダリ宛先にrsyncします)。このようにして、問題を検出した場合、次のバックアップ実行まで問題を解決します。

別の解決策はrsnapshot、複数の宛先にバックアップすることです。これにより、2つの異なる場所にある元のソースから実際にバックアップを生成します。このようにして、1つが損傷した場合でも、2つ目は影響を受けないはずです。

于 2012-05-21T20:31:41.463 に答える
1

破損したデータのコピーを防ぐために、毎週バックアップを保持し、すべてのバックアップを失う前にソースでの破損に気付くことを期待できます. 最良の方法は -c を使用することです。これにより、コピー元とコピー先の両方のチェックサムが比較され、ファイルをコピーするかどうかが決定されます。唯一の欠点は、ファイル全体を読み取る必要があり、バックアップのプロセスが遅くなることです。

#!/bin/sh
# Create a Backup of Today
# Definitions
sevendaysago=$(date --date='6 days ago' +%Y-%m-%d-%A)
# Delete backups from 7 days ago
rm -rf /storage/backups/$sevendaysago
mkdir -p /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$username

rsync -aHvz /storage/`date --date=yesterday +\%Y-\%m-\%d`-`date --date=yesterday +\%A`/$host/$user/ /storage/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$user/

rsync -acHvz -e ssh --delete --exclude='logs' tim@tim.tim.net:/home/tim/ /storage/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$user/
于 2012-09-12T06:48:14.470 に答える