使用 rsync 在两台服务器之间传输 40000 多个文件

使用 rsync 在两台服务器之间传输 40000 多个文件

我在同一个网络中的两台 Linux 服务器之间传输文件时遇到了问题。在源服务器上,我的目录中有 40055 个小文件,目录大小为 34 GB。我尝试使用 rsync 命令传输这些文件:

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

传输后,目标服务器上的目录大小为 108 GB,而不是 34 GB

分区上的块相同。

我用 scp 做了同样的事情,但问题是一样的。

答案1

为了完整保留所有内容,请尝试:

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

然后,为了验证正确性,您可以执行类似以下操作(假设文件名中没有空格):for file in *; do md5sum $file >> /tmp/sums.txt; done然后diff在两个服务器上执行 sums.txt。不过,md5summing 需要一段时间。

如果文件名中有空格,请使用findand/or构造一些内容xargs

顺便问一下,怎么du --bytes -hs说呢?这样,你就排除了块大小。

相关内容