rsync
我已经通过桥接器将文件从客户端传输到远程主机ssh
,现在远程主机上的生成文件比客户端上的原始文件大两倍多。
9.1GB -> 20GB
我已经用 检查了大小du -sh
。看起来不对。鉴于这些文件位于两个不同的位置,而且它们很大,我该如何检查出了什么问题?
客户端和远程主机是 Linux 的两种不同风格
ls -ls <file>
两个位置的输出为:
客户
9528947 -rw-r--r-- 1 user1 group1 20420948104 Nov 2 13:45 filename.hdf5
远程主机
19942340 -rw-r--r--. 1 user2 group2 20420948104 Nov 2 14:45 filename.hdf5
编辑
看起来可能是精简配置
https://fedoramagazine.org/copying-large-files-with-rsync-and-some-misconceptions/
编辑2
跑步
rsync -avz -S <origin> <dest>
并不能解决问题。
编辑3
远程主机上的文件系统是:
df -Th
->nfs4
答案1
导致此类问题的最常见原因是源文件是 稀疏文件:
稀疏文件是一种计算机文件,当文件本身部分为空时,它会尝试更有效地利用文件系统空间。这是通过将表示空块的简要信息(元数据)写入磁盘而不是构成块的实际“空”空间来实现的,从而占用较少的磁盘空间。仅当块包含“真实”(非空)数据时,才会将完整块大小作为实际大小写入磁盘。
您需要参数-S
或–sparse
来告诉 rsync 有效地处理稀疏文件。如果没有它,目标上仍会分配不存在的块,从而使文件膨胀。
根据维基百科,稀疏文件仅被添加在 NFS 版本 4.2 (RFC 7862)。
由于您的 NFS 版本为 4.1,因此很可能不支持稀疏文件。您需要将 NFS 服务器升级到所需的级别。