AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 132997
Accepted
Robin Day
Robin Day
Asked: 2010-04-17 00:09:49 +0800 CST2010-04-17 00:09:49 +0800 CST 2010-04-17 00:09:49 +0800 CST

robocopy /MIR 的替代品

  • 772

我们运行许多 Web 应用程序,它们将大量本地数据存储在小型 xml 文件中。我们备份/恢复策略的一部分是通过 VPN 生成文件系统的本地镜像到托管中心。

VPN 连接仅通过 12Mbps ADSL,虽然有很多文件和目录,但实际更改的文件数量非常少。

尽管带宽可能是一个问题,但我看到的结果如下所示。robocopy /MIR 运行了 5 个小时,但实际执行复制只需要 30 分钟。

有没有人对如何改进这一点有任何建议。5 小时现在已经接近于太慢了,如果我们找不到加快速度的方法,那么我们将不得不提出一个完全不同的解决方案。

            Total    Copied   Skipped  Mismatch    FAILED    Extras
 Dirs :     17625      6618     11007         0         0         0
Files :   1112430      1223   1111207         0         0         0
Bytes :  57.451 g  192.25 m  57.263 g         0         0         0
Times :   5:01:23   0:35:55                       0:00:00   4:25:27

Speed :               93509 Bytes/sec.
Speed :               5.350 MegaBytes/min.

Ended : Fri Apr 16 05:54:23 2010
backup windows-server-2003 filesystems mirror robocopy
  • 5 5 个回答
  • 8646 Views

5 个回答

  • Voted
  1. Charles Gargent
    2010-04-17T00:20:35+08:002010-04-17T00:20:35+08:00

    我使用 rsync for Windows 通过宽带连接进行复制。它应该是一个增量复制系统,它只复制每个文件的更改,而 robocopy 复制整个文件,如果它改变了一个位。(我有时想知道它是否真的这样做)

    您还可以使用 robocopy /mon:x 开关并让它永久运行。这将在 robocopy 看到文件系统中的 x 更改时运行。如果它非常频繁地运行,那么只会发生少量更改。

    您可以使用 Windows Server 中的文件复制功能,使用每个文件夹的 DFS 路径并将本地和远程文件夹设置为目标。

    • 4
  2. Best Answer
    rossnz
    2010-04-17T00:33:52+08:002010-04-17T00:33:52+08:00

    Robocopy 必须首先枚举所有本地和远程文件,以确定需要传输哪些文件。这很可能是需要时间的事情。

    如果您在成功备份后重置存档文件属性怎么办:

    attrib -a /s *
    

    然后每次写入文件时,存档位将自动设置。下次,您可以告诉 Robocopy 只归档设置了 A 标志的文件:

    robocopy source destination /mir /a
    

    我没有对此进行测试,但我相信它应该更快,因为 Robocopy 需要处理的文件要少得多。

    另一个想法是在远程服务器上运行计划作业(如果可能的话)以压缩整个目录结构,然后通过 VPN 复制生成的 zip 文件。XML 将很好地压缩,并且复制单个文件将比高延迟链接更有效。

    • 3
  3. Larry Silverman
    2010-05-17T14:20:33+08:002010-05-17T14:20:33+08:00

    我赞同 Charles Gargent 对 rsync 的建议。我通过 SSH 使用 rsync 和 Cygwin。如果我没记错的话,有一个非 cygwin 依赖的可执行文件可用。

    rsync 相对于 robocopy 的一个巨大好处是,将在远程端生成一个 rsync 代理来执行该端的处理。远程代理可以检查远程文件系统,而无需将所有文件详细信息带回本地计算机进行处理。这比 robocopy 快得多,并且可能是您延迟 5 小时的原因。

    您还可以使用 rsync over ssh 进行压缩,这可以进一步加快速度。

    但是请注意,Cygwin 文件系统 ACL 和 Windows ACL 不能很好地配合使用。如果您需要 ACL 的完美副本,rsync 可能不适合您。我必须编写一个脚本来运行 xcacls 以在复制文件后“清理”我的文件的权限。

    • 2
  4. xyz
    2010-08-15T17:46:45+08:002010-08-15T17:46:45+08:00

    只是一些关于使用 attrib -a /s 来解决 robocopy 不足的说明。如果您要使用此解决方案,请在运行完整备份之前运行它。IE。完整备份通常需要很长时间,并且有些文件可能在备份时和之后运行 attrib 之间发生了变化,这可能意味着在以后的副本中丢失了这些更改。

    关于此解决方案的第二个注意事项是,它仅在您的副本未被过滤时才能正常工作。如果您过滤备份或 robocopy 进程以避免临时文件和类似的垃圾,那么没有简单的方法可以确保 attrib 只查看复制进程查看的文件。那是; 您正在更改您实际上并未复制的文件的属性 - 这并不是一个好主意。

    令人着迷的是,robocopy 似乎无法创建传统的完整备份……或者一次无法创建。你可以通过运行它两次来做到这一点。一次复制所有内容,然后再次使用 /M 复制,这一次实际上重置了存档位。什么皮塔饼。

    • 0
  5. Leo Bingo
    2014-07-12T02:10:34+08:002014-07-12T02:10:34+08:00

    XYZ 关于使用 ATTRIB 的缺点的评论很有帮助,但是仅仅在 robocopy /MIR 命令之后使用 robocopy /COPY /M 命令来选择性地重置存档位是不够的。除非它实际复制文件,否则 Robocopy 不会重置该位,并且(默认情况下)它不会复制“相同”文件。所以,

    ROBOCOPY 源目标 /MIR

    ROBOCOPY 源目标 /COPY /M

    将使源上许多文件的存档位保持不变。(我希望这不是真的。)

    Robocopy 源代码不太可能进一步调整,但我希望作者能为 /MIR 提供一个“this”,以便一次性重置存档位(例如,/MIR:A)。这对于在新系统上启动备份非常重要,但无论如何这表明 robocopy /MIR 不是“完整”备份解决方案。

    • 0

相关问题

  • 总大小(磁盘)与总大小(媒体)

  • 社区对备份解决方案的意见

  • 无法读取不同 LTO-3 驱动器上的 LTO-3 磁带

  • 使用 TSM 备份时跳过硬链接

  • 使用 rsync 维护名称更改的目录的副本

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve