我目前正在跑步rsync --remove-source-files -P
。我正在传输大约 5TB 的文件。这意味着在传输的后期部分会浪费大量存储空间,因为我从中复制的服务器会保留整个 5 TB 直到最后。我正在寻找一种方法来防止这种情况发生,并在传输过程中清理空间。这可能吗?
答案1
我不知道 rsync 中有什么可以促进这一点。此外,一般操作(从文件开头释放分配的空间)并未得到普遍支持。操作系统和文件系统的某些组合可能允许这样做。否则,只能从末尾截断文件。 (在大多数 Linux 系统中可能可以通过使用fallocate -p
)
一些可能的选择:
- 分割文件。由于您可以删除它,因此它一定不在您的源计算机上使用。将其分成更小的部分,然后 rsync 可以在传输完成后删除每个单独的部分。如果您从末尾而不是开头开始执行此操作,您将获得更广泛的操作系统来支持它,因为可以普遍
truncate
使用源文件。 - 手动清零文件。这需要某种机制来检测文件的传输量(无论是从目标带外传输,还是解析输出),然后对复制的部分
--progress
进行调用。fallocate -p
您还想测试一下,如果副本在中间死亡,您可以通过--partial
(也可能使用--inplace
和--append
)正确重新启动它