rsync を使用してディレクトリ / フォルダの変更日時を保存する

rsync を使用してディレクトリ / フォルダの変更日時を保存する

故障したハード ドライブをバックアップしようとしていますが、進行状況インジケーターや停止と再開の機能があるため、rsync が理想的です。私が抱えている 1 つの問題は、ファイルの変更日属性は保持されているものの、ディレクトリには新しい日付属性が付与されることです。これにより、最近追加されたものを把握するために多くのファイルを日付順に並べ替えるときに問題が発生します。rsync を使用してディレクトリの変更日属性を保持することは可能ですか。

sudo rsync -avhX --progress --info=progress2 /mnt/failing/ /mnt/new/

-t (-a に含まれています) オプションはファイル属性を保持しますが、ディレクトリについては言及しません。特定の属性を正常に保持するには、/mnt/new パーティションの所有権/権限に特別な要件がありますか?

答え1

ディレクトリの最終変更時刻は によって保存されます-aが、これは rsync が終了したときにのみ確認できます。新しいファイルで絶えず更新されているディレクトリに時刻を設定することはありません。

これを自分でテストすることができます。ディレクトリを作成し、その日付を昨日に設定して、rsync でコピーします。

$ mkdir d1 d2
$ ls -ld d1
drwxr-xr-x 2  40 Nov  4 14:41 d1
$ touch -d 'yesterday' d1
$ ls -ld d1
drwxr-xr-x 2  40 Nov  3 14:41 d1
$ rsync -i -avR d1 d2
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  3 14:41 d2/d1/

d2/d1 ディレクトリには昨日の日付があります。これを上書きして、rsync で問題が解決するかどうかを確認します。

$ touch d2/d1
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  4 14:42 d2/d1/
$ rsync -i -avR d1 d2
.d..t...... d1/
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  3 14:41 d2/d1/

rsync -id2/d1 のタイムスタンプが間違っていることを表示し、修正します。

答え2

誰かの役に立つかもしれないと思い、この問題について記事を書くことにしました。記事で説明されているように、Rsync を使用すると、実質的にすべてのメタデータを保存できます。

Arch Linux でストレージ ドライブを Rsync に置き換える

すべてを同期するためのスニペットは次のとおりです。

sudo rsync -avihXP --info=progress2 --stats --dry-run /mnt/disk?/ /mnt/temp/

答え3

rsync -avzすべてを実行してくれます
-vは詳細表示用です
-aはアーカイブモード用です(-rlptgoDと同様)
-zは圧縮を使用します

関連情報