备份2个外置硬盘时,cygwin rsync速度很慢

时间:2011-12-23 09:16:45

标签: cygwin rsync

我写了一个shell脚本来通过笔记本电脑备份我的外置硬盘。我基本上将外部硬盘连接到笔记本电脑的USB端口,并在脚本中运行以下命令将1个硬盘备份到另一个硬盘。

 rsync -arvv "$flg" --log-file="$LOGFILE" "$srcdir" $BAKUP_DIR 2> "$ERRFILE"
 $ rsync --version
   rsync  version 3.0.9  protocol version 30

flg是--delete还是空格,具体取决于我想要备份dir的方式。我相信这是因为我无法理解的某些原因而缓慢的。我认为备份时不必要地传输文件。我可以看到文件部件在通过资源管理器查看时发送(并且正在增长),并想知道为什么会这样。

和日志文件......

  grep -C 15 delta 2011-12-23-37_bk.log
  2011/12/23 14:28:34 [8712] total: matches=0  hash_hits=0  false_alarms=0 data=2133674141
  2011/12/23 14:28:35 [8712] sent 2133939896 bytes  received 772 bytes  1854794.15 bytes/sec
  2011/12/23 14:28:35 [8712] total size is 3901493999  speedup is 1.83
  2011/12/23 14:28:35 [5072] building file list
  2011/12/23 14:28:39 [5072] delta-transmission disabled for local transfer or --whole-file

这是正常的还是我缺少的东西?

4 个答案:

答案 0 :(得分:3)

我在最近安装Cygwin的系统上遇到了完全相同的问题:rsync太慢了。使用--progress选项我可以看到rsync在外部USB 3.0磁盘和内部磁盘之间仅以大约2/3 MB /秒的速度传输文件。

在类似的系统上,相同的操作按预期工作(60/70 MBytes / sec)。

在尝试了很多东西之后,我意识到系统上的“rsync --version”是3.0.9我刚刚安装了Cygwin和系统上的3.0.8它运行正常。所以看起来3.0.9已经破坏了一些东西。

我通过另一个系统的rsync.exe(v3.0.9)从一个系统复制了rsync.exe(v3.0.8)文件,现在文件以预期的速度传输(60/70 MBytes / sec)

答案 1 :(得分:2)

我有完全相同的问题,我也通过安装rsync版本3.0.8解决了它。但是如果复制.exe,你可以重新执行cygwin的设置。在软件包管理器中搜索“rsync”,安装程序仍然包含安装3.0.8的选项,这意味着您可以轻松地从3.0.9降级到3.0.8。从那里开始,一切都恢复正常,最大化。速度。

答案 2 :(得分:1)

我也在Cygwin64上遇到rsync 3.0.9这个问题(~3MB / s传输)。

在Cygwin64上没有选择“返回”到3.0.8,因为它不在回购中。

但是我下载了rsync 3.1.0并自己手动构建它(只需要gcc并安装),这种情况有了很大的改进。

3.1.0构建自己管理~35MB / s。 Windows资源管理器副本速度更快(大约50MB / s),但我会接受它!

答案 3 :(得分:0)

我有~4MB / s rsync传输率的同样问题。资源监视器和-P到rsync都会报告此速度。它的任务是将大约200GB的备份文件从一个驱动器复制到另一个驱动器,并且它曾经工作了大约1.5个小时来复制它们。不是很快,但对我来说足够好。最近有些事情已经破裂,毫无疑问,由于我在几年内没有更新Cygwin,因此对Windows系统进行了一些更新。工作开始需要大约14个小时,这让我更接近它。我更新了我使用的x32 Cygwin到最新版本(rsync版本3.1.0协议版本31)并安装了x64版本的Cygwin以查看它是否有任何区别。不。

认为它可能是一个或另一个可能变坏的硬盘驱动器,我确保两者都完全碎片整理并清除了任何垃圾。然后我用“cp -au”替换了我一直使用的“rsync -a”命令并测量了吞吐量。使用cp,它以~100MB / s的速度读写,这是硬件支持的,它可以在大约30分钟内复制~200GB。所以rsync中的某些内容并不完全正确。

我的解决方法是放弃使用rsync而选择cp。只是预先删除目标上的整个目录树并让cp复制一个全新的目标树比让rsync完成它以保持两个目录同步更快。可能有更好的选择,但这对我有用。