I have a problem with transfer files between two Linux servers in the same network. On source server I have directory with 40055 small files, directory size is 34 GB. I tried to transfer those files with rsync command:

rsync -ah --progress --inplace /dir/dir_with_files user@server:/dir/destination_dir

After transfer, on destination server I have directory with size 108 GB not 34 GB

Blocks on partitions are the same.

I did the same thing with scp but the problem is the same.

  • 3
    Any sparse files ? – user9517 Feb 15 '14 at 11:47

For a complete retention of everything, try:

rsync --archive --hard-links --sparse-files --acls --xattrs source dest

Then to verify correctness, you can do something like (assuming no spaces in your file names): for file in *; do md5sum $file >> /tmp/sums.txt; done and then diff sums.txt on both servers. The md5summing is going to take a while, though.

If you do have spaces in your file names, construct something with find and/or xargs

BTW, what does du --bytes -hs say? That way, you rule out block size.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.