当使用rsync在许多文件夹中传输许多小文件时,它往往会停留在ir-chk=1000/xxxxx,其中xxxxx在发现新文件时会不断增加计数,要检查的数量一直保持在1000左右,直到最后一个文件夹中为止。
如何在复制之前检查整个文件计数?
我用来复制的命令是:
rsync -av --progress source dest
Run Code Online (Sandbox Code Playgroud)
rsync -av --progress --dry-run --stats source dest
Run Code Online (Sandbox Code Playgroud)
--dry-run不传输任何文件,但会显示要传输多少字节。--stats显示摘要。样本输出:
...
tests/
tests/__init__.py
tests/test_config.py
Number of files: 5,033 (reg: 2,798, dir: 2,086, link: 149)
Number of created files: 5,032 (reg: 2,798, dir: 2,085, link: 149)
Number of deleted files: 0
Number of regular files transferred: 2,798
Total file size: 26,035,530 bytes
Total transferred file size: 26,032,322 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.004 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 158,821
Total bytes received: 17,284
sent 158,821 bytes received 17,284 bytes 117,403.33 bytes/sec
total size is 26,035,530 speedup is 147.84 (DRY RUN)
Run Code Online (Sandbox Code Playgroud)
获取将要传输的文件数
rsync -av --progress --dry-run --stats source dest |
fgrep 'Number of files' |
cut -d' ' -f4 |
tr -d ,
Run Code Online (Sandbox Code Playgroud)
小智 5
从版本 3.0.0 开始,您可以使用此选项显式关闭增量递归:
--no-i-r
Run Code Online (Sandbox Code Playgroud)
rsync 手册页的详细信息:
从rsync 3.0.0开始,使用的递归算法现在是增量扫描,使用的内存比以前少得多,并在前几个目录的扫描完成后开始传输。这种增量扫描只影响我们的递归算法,并不会改变非递归传输。也只有当传输两端的版本至少为 3.0.0 时才可能。
某些选项需要 rsync 才能知道完整的文件列表,因此这些选项禁用增量递归模式。其中包括:--delete-before、--delete-after、--prune-empty-dirs和--delay-updates。因此,当连接两端至少为 3.0.0 时,指定--delete时的默认删除模式现在为--delete-during (使用--del或--delete-during来请求这种改进的删除模式)明确)。另请参阅--delete-delay选项,它是比使用--delete-after更好的选择。
可以使用--no-inc-recursive 选项或其较短的--no-ir别名来禁用增量递归。
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |