質問: rsyncを使ってフォルダー全体を別サーバーにコピーした時、サイズの違いが生じており困っています。もしどなたか解決方法がわかりましたら、ご教授をお願いしたく、ここで質問させていただいています。 少し状況を説明させていただきます。 現在2台のサーバー(A,Bとしておきます)を使用しています。 どちらのOSもubuntu 16.04に設定してあります。 サーバーAにあるフォルダーをサーバーBにコピーしたいです。 そのフォルダーは以下のように複数のファイルを含んでいます。 ``` Nov132018 ├── test.AQ863.1.1.h264 ├── test.AQ863.1.2.h264 ├── test.AQ863.1.3.h264 ├── test.AQ863.1.4.h264 └── test.AQ863.1.5.h264 ``` 以下のコマンドを使用して、このフォルダー全体を、サーバーBにコピーしました。 ``` rsync -av -e ssh /media/user1/1C3C-F8AC/Nov132018 amori@ipaddress:/tank/user1/tmpNAS/NAS1/movies ``` サーバーB側で転送されたフォルダーを確認したところ、すべてのフォルダーを含めてすべてのファイルは転送されていました。 しかし、問題はフォルダーのサイズが20倍になっていました。 具体的には、 サーバーA側では ``` $ ls -lh Nov132018/ total 504M -rw-r--r-- 1 user1 user1 504M Nov 13 04:16 test.AQ863.1.1.h264 -rw-r--r-- 1 user1 user1 0 Nov 13 04:26 test.AQ863.1.2.h264 -rw-r--r-- 1 user1 user1 0 Nov 13 04:36 test.AQ863.1.3.h264 -rw-r--r-- 1 user1 user1 0 Nov 13 04:46 test.AQ863.1.4.h264 -rw-r--r-- 1 user1 user1 0 Nov 13 04:56 test.AQ863.1.5.h264 ``` でしたが、 サーバーB側では ``` $ ls -lh Nov132018/ total 10G -rwxr-xr-x 1 amori amori 504M Nov 13 04:16 test.AQ863.1.1.h264 -rwxr-xr-x 1 amori amori 0 Nov 13 04:26 test.AQ863.1.2.h264 -rwxr-xr-x 1 amori amori 0 Nov 13 04:36 test.AQ863.1.3.h264 -rwxr-xr-x 1 amori amori 0 Nov 13 04:46 test.AQ863.1.4.h264 -rwxr-xr-x 1 amori amori 0 Nov 13 04:56 test.AQ863.1.5.h264 ``` でした。 転送されたファイルのサイズは正しいにも関わらず、フォルダーのサイズが500Mと10Gと大きく違っています。 なぜこの様な問題が生じているのか、分かりません。 サーバーB側でも500Mに抑えたいです。 そのような方法をお知りの方がおられましたら、ご教授をお願いします。 --- 原因が分かってきましたので、すこし追加情報を記入しておきます。 どうやら原因はblock sizeのようです。 dfコマンドを使ってしらべましたら、 サーバーAのblock size(1K-blocks)は60049056 サーバーBのblock size(1K-blocks)は10978791680 でした。 サーバーBには他のデータもありますので、block sizeを変更するとどうなるか分かりませんので、ここでストップしています。もし助言があれば、お知らせしていただけると幸いです。
回答: sparse ファイルをコピーしたせいではないかと。`rsync` に `--sparse` オプションを付与してコピーしなおしてみてください。 やり直す前にコピー先のファイルは一旦削除してください。`rsync` は同期(コピーしなおし)の判定に sparse 状態の差は見ないので。