
このコマンドを実行して、2 つのフォルダーの同一性を確認し、すべての相違点をログ ファイルに記録します。
rsync -av --delete --checksum --dry-run --stats --itemize-changes --out-format='%t %i %f ' SOURCE DESTINATION | tee log.txt
比較しているファイル間に違いがない場合、rsync はジョブが終了するまでこれ以外のことは何も表示しません。
増分ファイルリストの送信
rsync が現在どこにいるかに関する情報を得られると便利です。特に、多数のファイルを比較する場合はそうです。rsync にすべてのチェックをターミナルに出力させ、違いだけをログ ファイルに残すことは可能ですか?
追記:--info=progress2
役に立ちませんでした。
答え1
[rsync がチェックサムを計算しているファイルのリストを、それらのチェックサムが計算されているときに取得したいようです。私が読んだところ、それは利用できないようです。私が理解している限り、rsync が進捗を報告する方法に関連して、どのようにレポートするかについて、以下に一般的な情報をいくつか示します。]
転送するファイルがある場合、--info=progress1
スイッチ (「ファイルごとの進行状況」) によって進行状況情報が表示されます。各ファイルが転送されるたびに、次のような情報が表示されます。
MD5SUMS.gnome
141 0% 0.00kB/s 0:00:00 (xfr#1, to-chk=11/13)
ParrotSecurity.lnk
179 0% 37.11kB/s 0:00:00 (xfr#2, to-chk=10/13)
SHA256SUMS.mate
486 0% 336.91kB/s 0:00:00 (xfr#3, to-chk=9/13)
SHA256SUMS.mate.gpg
1,419 0% 1.22MB/s 0:00:00 (xfr#4, to-chk=8/13)
SHA256SUMS.ubuntu
1,994 0% 1.77MB/s 0:00:00 (xfr#5, to-chk=7/13)
SHA256SUMS.ubuntu.gpg
2,927 0% 2.66MB/s 0:00:00 (xfr#6, to-chk=6/13)
xfer
xfer#6
は、どのファイルが転送されているか (は 6 番目)を示し、 to-chk
( とするとto-chk=6/13
) は、13 個中 6 番目であることを示します。
--dry-run
転送するものがないので、 ではこれが取得されないことに注意してください。( でこの出力が得られる場合もあります--progress
が、マニュアル ページからは明確ではなく、今は確認しません。)
--recursive
のマニュアル ページを見ると、バージョン 3.0.0 以降では、開始前にいくつかのディレクトリをチェックし、転送中にそれらのチェックを継続することがわかります。これは「増分再帰」スキャンであり、その場合はではなく がrsync -r
表示されます。また、 の「分母」は、スキャンするファイルが増えるにつれて増加する可能性があります。ir-chk
to-chk
ir-chk
を使用していない場合--recursive
、まずチェックサムを実行して転送するすべてのファイルを識別し、その後、1つずつ転送します。ないrsync は、まだファイルの数やサイズを知らないため、チェックサムの計算の初期段階では、何らかの進捗状況レポートを取得できないようです。チェックサムの計算時にファイル名のリストを取得できるかどうかについては、私の読んだ限りでは、そうではないようです。(しかし、巧妙なトリックがある可能性があり、それを否定するのは難しいです!)