17

rsync が最近変更されたファイルに対してのみ動作するように時間範囲を指定することは可能ですか?

最近追加されたファイルを SSH 経由でバックアップするスクリプトを作成していますが、rsync は効率的なソリューションのようです。私の問題は、ソース ディレクトリに、バックアップする必要のない古いファイルの膨大なバックログが含まれていることです。

これまでに遭遇した唯一の解決策は、 ctime で検索を実行して --files-from ファイルを生成することです。これは機能しますが、--files-from をサポートしていないバージョンの rsync を使用する古いインストールに対処する必要があります。--include-from パターンを同じ方法で生成することを検討していますが、もっとエレガントなものを見つけたいと思っています。

4

4 に答える 4

26

rsyncの引数にシェルコマンドを指定できるようです(リモートrsyncが任意のシェルコマンドを実行するを参照) 。

だから私はrsyncが見るファイルを以下を使ってうまく制限することができました:

rsync -av remote_host:'$(find logs -type f -ctime -1)' local_dir

これにより、前日に変更されたファイル(-ctime -1)が検索され、それらがlocal_dirにrsyncされます。

この機能が仕様によるものかどうかはわかりませんが、まだドキュメントを調べています。

于 2009-06-04T11:55:36.783 に答える
2

一度ディレクトリ全体をバックアップすることに熱中し、rsync と rdiff およびそのいとこによって提供される増分バックアップを利用しないのはなぜですか。永久に変更されないため、バックアップ先のディスク領域を無駄にすることはありません。

全体をバックアップする方が簡単で、エラーのリスクが大幅に少なくなります。一部のファイルのみを選択的にバックアップしようとすると、必要なものを気付かずにバックアップせず、重要なファイルを復元できないときにやけどを負うことになります。

それ以外の場合は、ソース ディレクトリを再編成して、バックアップ スクリプトでの「意思決定」が少なくなるようにする必要があります。

于 2009-06-03T15:31:02.167 に答える
1

rsync をドロップして、rdiff-backup を確認することをお勧めしますか?

于 2009-06-04T12:13:13.877 に答える
1

一時ディレクトリを作成し、ファイルをシンボリックリンクまたはハードリンクしてから、それを再同期するのはどうですか?

于 2009-06-03T15:27:31.707 に答える