rsync期间源文件大小增加

时间:2018-11-01 19:17:53

标签: rsync du

我使用rsync备份目录。在使用du -s启动rsync之前,我查看了目录大小,该目录报告的目录大小约为1TB。

然后,我启动了rsync,在同步期间,我查看了备份目录的大小以获取估计的结束时间。当备份的大小超过1TB时,我感到很好奇。似乎源目录中许多文件的大小增加了。在rsync进程复制该文件之前和之后,我对源文件中的文件做了du -s

## du on source file **before** it was rsynced
# du -s file.dat
2 file.dat

## du on source file **after** it was rsynced
# du -s file.dat
4096 file.dat 
```

rsync命令:

rsync -av -s --relative --stats --human-readable --delete --log-file someDir/rsync.log sourceDir destinationDir/

两侧(源,目标)的文件系统是RHEL 7.4上的BeeGFS 6.16,内核3.10.0-693

任何想法在这里发生了什么?

1 个答案:

答案 0 :(得分:0)

file.dat可能是稀疏文件。使用选项--sparse

   -S, --sparse
          Try  to  handle  sparse  files  efficiently so they take up less
          space on the destination.  Conflicts with --inplace because it’s
          not possible to overwrite data in a sparse fashion.

有关稀疏文件的维基百科:

  

稀疏文件是一种计算机文件,当文件本身部分为空时,它将尝试更有效地利用文件系统空间。这是通过使用较少的磁盘空间将代表空块的简短信息(元数据)写入磁盘而不是构成块的实际“空”空间来实现的。

可以如下创建稀疏文件:

$ dd if=/dev/zero of=file.dat bs=1 count=0 seek=1M

现在让我们检查并复制它:

$ ls -l file.dat
.... 1048576 Nov  1 20:59 file.dat
$ rsync file.dat file.dat.rs1
$ rsync --sparse file.dat file.dat.rs2
$ du -sh  file.dat*
0       file.dat
1.0M    file.dat.rs1
0       file.dat.rs2