最新のファイルから時系列に再同期する方法

最新のファイルから時系列に再同期する方法

私は次のディレクトリ構造を持っています:

item_1
item_12
item_33
..etc..

最近のファイルから同期を開始し、リストを時系列に同期したいと思います。

またはオプション2:1週間以内にディレクトリを再同期する方法。

背景:スロードライブには数テラバイトのデータがあるため、高速ドライブに同期する必要があります。これで、すべてのデータを一度に同期することをスキップし、最新のデータのみを同期したいと思います。

rsyncだけを使用してこれを実行できますか、それともrsyncでfindを使用する必要がありますか?

ベストアンサー1

rsync常にソースファイルをソートすると、ターゲットのファイルリストを比較して、削除されたファイル、追加された新しいファイル、および更新されたファイルを見つけるのが簡単になります。

rsync極端な場合は、単一のソースファイルを使用して最新のファイルを見つけて複数回実行することもできます。

同期するディレクトリを選択する方法を決定する必要があります。ディレクトリタイムスタンプだけを見ると、更新されたそのディレクトリのファイルだけでなく、その中にあるサブディレクトリとファイルも見逃すことがあります。

最新のファイルのみを同期し、ソースから削除されたファイルをターゲットから削除することを心配したくない場合は、次の方法を使用できます。

find topdir -mtime -7 -type f -print0 > /tmp/list-of-files
rsync -ptgo --files-from=/tmp/list-of-files --from0 ./ destinationdir/

まず、7日未満のファイルのリストを作成し、それをnullで終わる一時ファイルに保存します。そのため、スペースと改行を含むファイル名は引き続き正しく機能します。このリストを置くための安全な場所を見つける必要があるかもしれません。/tmp特に、上記の固定名を入れるとセキュリティ上の問題が発生する可能性があるためです。

rsync次に、権限、タイムスタンプ、グループ、およびユーザー設定を維持しながら、これらのファイルを転送するように指示します。

おすすめ記事