rsync 命令每次花费的时间太长

rsync 命令每次花费的时间太长

很长一段时间以来,我一直使用 rsync 和 USB 电缆将手机 SD 卡中的照片传输到电脑上。这是当前命令:

rsync -azvu --ignore-existing --progress SD-Karte/DCIM/Camera/  /home/cardamom/Pictures/PhonePictures/

我花了一段时间通过反复试验和阅读文档才得到正确的结果。每个目录中可能有数千张照片,但人们不会认为计算机需要那么长时间来比较两个一千张长的列表,并且如果源中存在目标中没有的内容,请将其带过去。

然而,如果我用手机拍一张额外的照片,或者甚至没有额外的照片,它会在那里思考两到三分钟,然后在大约一秒钟内传输一张照片。

我不确定瓶颈是否在 rsync 命令中,该命令正在做一些我不需要的事情,例如比较文件的哈希值,或者它是否在旧智能手机的 SD 卡中,这在某种程度上效率低下。

rsync 命令是否有效率低下的地方,或者是否有某种措施可以使其在手机内运行得更快?

答案1

如果时间太长,可能是因为rsync无法应用quick check仅依赖于大小和时间的方法。

请注意,不同的文件系统以不同的方式存储时间,这意味着 rsync存储的内容并不总是稍后检索的内容。

发生这种情况时,rsync无法应用快速检查并转向校验和检查,这迫使它读取整个文件只是为了确保它是同一个文件,从而减慢整个传输速度。

ls -l --time-style=full-iso original_file
ls -l --time-style=full-iso already_synced_file

告诉你情况是否如此。如果是这样,您至少有两个选择,具体取决于它们的距离:

  • 添加--size-only选项以仅检查尺寸而不检查时间。
  • 使用该--modify-window选项来考虑这一点。

答案2

因此,以下内容似乎使我的照片同步运行得非常快 - 三秒而不是三分钟。我去掉了缩写,所以很清楚哪个是哪个:

time rsync --dry-run --verbose --compress --update --ignore-existing --recursive --group --times --progress --omit-dir-times --no-perms  --modify-window=120   from/here/  /to/here/

当不再需要计时时,摆脱时间;当它似乎在做应该做的事情并且不会伤害任何东西时,摆脱空运行。

注意到在构建它时,命令中有相当多的加速器和刹车同时发生的情况,而 rsync 从未抱怨过。例如,-abeing -rlptgoD,p 是for ,--perms并且有一段时间我也在--no-perms那里。

将继续观察试运行一段时间,并确保其继续正常运行。

相关内容