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 / 问题 / 26467
In Process
dmcgiv
dmcgiv
Asked: 2009-06-17 03:58:09 +0800 CST2009-06-17 03:58:09 +0800 CST 2009-06-17 03:58:09 +0800 CST

最快的文件复制方法

  • 772

如果我们在构建服务器 (CCNET) 上成功构建,所有 ASP.NET 网站文件都将复制到虚拟目录 (%output_dir%),以便非开发人员可以查看/测试网站的最新版本。在构建结束时,将执行以下 bat 文件。

rmdir /s /q "%output_dir%"
mkdir "%output_dir%"
xcopy "%source_dir%*"  "%output_dir%" /e /c /i /q /-y

问题是我发现复制速度很慢,想知道在 Windows 2008 中是否有任何可用的复制命令比 xcopy 更快?源和目标在同一个驱动器上。以下是我们在复制时使用的参数。

/e = copies directories and sub directories including empty ones.
/c = continues copying even if there are errors
/i = if destination does not exist destination is directory
/q = don't display filenames
/-y = confirm overwrite
windows-server-2008 xcopy
  • 6 6 个回答
  • 58097 Views

6 个回答

  • Voted
  1. Shaun Hess
    2009-06-17T14:53:19+08:002009-06-17T14:53:19+08:00

    仅从性能的角度来看,xcopy或robocopy会给您类似的结果。我在 Windows Vista 64 位 SP2 机器上进行了几次测试,以进行一些比较。所有副本均在内部 7200 RPM Sata II 磁盘和外部 USB 2.0 驱动器之间执行,或在指示的同一内部驱动器本身上执行。没有进行特殊设置(如果使测试无效/验证,请自行决定),只是将命令输入到批处理文件中执行。PowerShell 用于捕获开始和停止时间。经过几次传球后,这里是我使用的工具的平均值:

    文件:732,909,568 字节 (698 MB),1 个 ISO 文件复制到同一个内部磁盘上的不同目录。

    copy      6 secs (ex. copy G:\folder1\* G:\folder2\)
    xcopy     6 secs (ex. xcopy G:\folder1 G:\folder2 /I /E /Y /R)
    robocopy  6 secs (ex. robocopy G:\folder1\ G:\folder2 /E /NP)
    teracopy 28 secs (ex. TeraCopy.exe Copy G:\folder1\ G:\folder2\)
    fastcopy 19 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=G:\folder2)  
    

    文件:732,909,568 字节 (698 MB),1 个 ISO 文件复制到外部 USB 磁盘。

    copy     36 secs (ex. copy G:\folder1\* I:\folder2\)
    xcopy    35 secs (ex. xcopy G:\folder1 I:\folder2 /I /E /Y /R)
    robocopy 36 secs (ex. robocopy G:\folder1\ I:\folder2 /E /NP)
    teracopy 36 secs (ex. TeraCopy.exe Copy G:\folder1\ I:\folder2\)
    fastcopy 38 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=I:\folder2)  
    

    文件:45,039,616bytes (42.9MB) 5 个随机文件复制到外部 USB 磁盘

    copy      6 secs (ex. copy G:\folder1\* I:\folder2\)
    xcopy     5 secs (ex. xcopy G:\folder1 I:\folder2 /I /E /Y /R)
    robocopy  6 secs (ex. robocopy G:\folder1\ I:\folder2 /E /NP)
    teracopy 12 secs (ex. TeraCopy.exe Copy G:\folder1\ I:\folder2\)
    fastcopy  6 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=I:\folder2)
    

    文件/目录:1,087,180,800 字节(1.01 GB),27 个文件/8 个目录复制到外部 U 盘。

    copy     *Not included in test
    xcopy    57 secs (ex. xcopy G:\folder1 I:\folder2 /I /E /Y /R)
    robocopy 58 secs (ex. robocopy G:\folder1\ I:\folder2 /E /NP)
    teracopy 56 secs (ex. TeraCopy.exe Copy G:\folder1\ I:\folder2\)
    fastcopy 60 secs (ex. fastcopy.exe /auto_close G:\folder1 /to=I:\folder2)
    

    这绝不是一个详尽的测试,但只是在这个类型的一些更流行的工具上快速地抛出一个现实世界的场景表明你非常安全地坚持使用 xcopy 或 Robocopy(仅从性能的角度来看)。此外,Robocopy 选项/NP(无进度)可为您节省 0 时间。但是,这并不意味着您不能从使用 xcopy 以外的东西中受益。Robocopy 是一个很好的例子(来自维基百科):

    Robocopy 以超越内置 Windows 复制和
    xcopy 命令的功能而著称,包括以下内容:

    • 能够容忍网络中断并从先前中断的地方继续复制(不完整的文件会标有对应于 1980-01-01 的日期戳并包含恢复记录,以便 Robocopy 知道从哪里继续)。
    • 默认情况下,能够正确复制属性、所有者信息、备用数据流、审计信息和时间戳,而无需大量经常被遗忘的命令行开关。
    • 能够正确复制 NTFS ACL(当提供 /COPYALL 时),并声明 Windows NT“备份权限”(/B),以便管理员可以复制整个目录,包括拒绝管理员读取的文件。
    • 默认情况下持久性,如果无法打开文件,则自动重试次数可编程。
    • “镜像”模式,通过选择性地删除目标文件中不再存在于源文件中的文件来保持树同步。
    • 能够复制大量文件,否则会导致内置 XCOPY 实用程序崩溃。
    • 命令行上不断更新的进度指示器。
    • 能够复制超过 256 个字符(理论上最多 32,000 个字符)的长文件和文件夹名称而不会出错。
    • 23
  2. Marc Gravell
    2009-06-17T04:16:49+08:002009-06-17T04:16:49+08:00

    我通常使用:

    robocopy source dest /E /MIR
    

    或参数的其他一些变体 - 可能/NFL /NDL /NS /NC /NP匹配“安静”

    • 5
  3. Len
    2009-10-07T14:52:48+08:002009-10-07T14:52:48+08:00

    实际上,通过消除网络,您确实限制了您的测试。您可能希望考虑使用网络共享,这将是大量的管理工作。

    此外,您应该使用 FTP,并完全跳过 CIFS。Eseutil.exe 是您可以放入其中的另一个实用程序。(可以在其他地方使用的 Exchange 实用程序,以及它的四个依赖 dll。)

    那我想看看你的结果。

    • 1
  4. Saif Khan
    2009-10-07T19:03:15+08:002009-10-07T19:03:15+08:00

    我出于同样的目的使用 XCopy。我还做的是向该服务器添加另一个 NIC 并将其放在单独的子网中。然后直接连接到我从中传输文件的服务器。这样,两台机器通过一个子网移动复制的数据,用户仍然可以通过直接连接到 LAN 的第二个 nic 访问。

    • 1
  5. Donald Byrd
    2009-10-07T19:16:59+08:002009-10-07T19:16:59+08:00

    您说源和目标在同一个驱动器上,但它们都在构建服务器上吗?

    如果构建服务器是源和目标的位置,请考虑将一个或另一个文件夹移动到另一个驱动器,可能在另一个控制器上。

    如果构建服务器不是源和目标的位置(构建放置并不总是在构建它们的服务器上),请考虑在源和目标文件夹所在的服务器上创建一个任务。然后远程启动该任务。

    • 1
  6. Will Zablocki
    2016-04-12T09:30:02+08:002016-04-12T09:30:02+08:00

    这些年来,我不得不做几份副本。我们有一台 Windows Server 2008 R2 机器,它有一个目录,里面有超过 12M 的图像(大约 400GB)。

    显然我不希望它是这么大的目录但是:

    • XCOPY 处理大文件夹的副本,但在尝试从大目录移动时崩溃。
    • ROBOCOPY 可以毫无问题地处理副本,并且在复制时提供更好的体验,因为它提供了更好的进度指示器。
    • 小目录上的 XCOPY 速度更快。

    无论如何,我只是想与他们分享我的经验,因为我非常大的目录的不寻常性质。

    • 1

相关问题

  • 首次安装 Office Communications Server 需要一些帮助

  • 什么可能导致 IIS7 拒绝绑定到不允许导出私钥的证书?

  • 从 2003 年迁移到 2008 年 Microsoft 群集技术

  • 有什么理由使用 Windows Server 2003 而不是 Server 2008?

  • 是否可以在单个 W2008 服务器上安装 Exchange Server?

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

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

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 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
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +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