scp-目标文件夹中的文件大小不同

scp-目标文件夹中的文件大小不同

使用 scp 时,发现目标文件夹中文件总大小减少了 0.1G,并且发现目标文件夹中的一些文件大小变大了。这可能是什么原因造成的?

源目录个别以及总大小如下:

du -h *

0   acnoltcustmktikprd1.vmsd
4.0K    acnoltcustmktikprd1.vmx
4.0K    acnoltcustmktikprd1.vmxf
5.1G    mikrotiktest-flat.vmdk
12K mikrotiktest.nvram
4.0K    mikrotiktest.vmdk
0   mikrotiktest.vmsd
4.0K    mikrotiktest.vmxf
224K    vmware-1.log
168K    vmware-2.log
420K    vmware-3.log
336K    vmware-4.log
252K    vmware-5.log
252K    vmware-6.log
256K    vmware.log

du -csh .

5.1G    .
5.1G    total

目标目录的个别大小以及总大小如下:

du -h *

0   acnoltcustmktikprd1.vmsd
8.0K    acnoltcustmktikprd1.vmx
0   acnoltcustmktikprd1.vmxf
5.0G    mikrotiktest-flat.vmdk
1.0M    mikrotiktest.nvram
0   mikrotiktest.vmdk
0   mikrotiktest.vmsd
0   mikrotiktest.vmxf
1.0M    vmware-1.log
1.0M    vmware-2.log
1.0M    vmware-3.log
1.0M    vmware-4.log
1.0M    vmware-5.log
1.0M    vmware-6.log
1.0M    vmware.log

du -csh .

5.0G    .
5.0G    total

关于文件系统:源系统在 Ubuntu 12.04/ext4 上,目标系统是 VMware vSphere VMFS。

答案1

这与 无关scp。这是文件系统和所用块大小的问题。

简单来说,例如,如果您使用 512 KB 的块大小,并且您有一个 2.5MB 大小的文件,那么该文件将保留 5 个块。此时,当文件系统读取大小时,它将计算 5*512KB=2.5MB

现在,如果您的块大小为 1MB,那么大小为 2.5MB 的相同文件将保留 3 个块。此时,当文件系统读取大小时,它将计算 3*1MB=3MB

了解更多信息

另一个可能的原因

如果两个系统的块大小相同,那么这可能是由文件的起始扇区引起的。

也就是说,我的意思是文件系统中的一个块实际上是许多扇区的集合。这些扇区(我认为默认是 4 个)组成了数据块。

所以假设

在系统 A 中,文件从块 0 的扇区 1 开始,而在系统 B 中,文件从块 0 的扇区 0 开始。这会导致大小不同,因为系统 A 中的文件将保留更多扇区,因此保留更多块,尽管大小更大

相关内容