2

Linux マシン上のローカルのオンディスク SVN リポジトリを rsnapshot でバックアップしたいと考えています。ファイル システムからバックアップすることはできないので、各スナップショットの前に「svnadmin hotcopy」でコピーを作成しています。ただし、ホットコピーを実行するたびに、結果のファイルはすべて、元のファイルと同じタイムスタンプではなく、現在のタイムスタンプになります。これは、rsnapshot が提供するコピー オン ライト風のディスク領域の節約を行う能力を失うことを意味します。

私が考えた 1 つの解決策は、スクリプトでホットコピー ($DEST) 内のすべてのファイルを調べ、ファイル x ごとに、ファイル $SOURCE/x に基づいてタイムスタンプを設定することです。Linuxでrsyncにこれを実行させる方法があるかどうかはわかりません(WindowsのRobocopyで実行できることは知っています:)ただし、findとtouchで実行できると確信しています。

これを行う方法の提案、または他の解決策を歓迎します。各時点のスナップショットをその時点でのリポジトリの完全なコピーにしたいので、増分 svn ダンプを使用したくありません。

4

1 に答える 1

0

すべてのファイルのタイムスタンプを変更することはそれほど難しくありませんでした。

cd /var/local/backup/svn
find . -exec touch -r /data/src/svn/\{\} \{\} \;

これにより、ホット コピー バックアップに存在するファイルのタイムスタンプが親と同じタイムスタンプを持つようになります。つまり、元のファイルを更新するときにのみ更新する必要があります。

于 2010-02-08T16:34:43.097 に答える