由于需要在两台服务器之间移动几个非常大的文件(VHD),我使用远程桌面会话中的 Windows 资源管理器启动了文件复制操作,然后关闭会话而不注销,让文件复制继续进行;第二天,我重新登录,文件复制似乎已经完成...但文件上的所有时间戳(创建、上次访问、上次修改)都指的是我启动复制的时间,我确信复制操作需要几个小时。
我本来期望至少“上次访问”或“上次修改”时间戳指的是文件复制操作结束的实际时间,但看起来它的工作方式并非如此。
我如何检查(如果可以的话)复制是否成功完成,以及何时完成?
文件大小并不是一个指标,因为即使复制操作被中断,文件也总是会被分配完整的大小。
答案1
你可以使用免疫学在源服务器和目标服务器上生成文件的哈希值。如果哈希值匹配,则可以 100% 确定复制成功。
答案2
我所知道的最佳解决方案是使用带有/log:
选项的 RoboCopy。
答案3
您没有说明正在使用哪种操作系统,但是如果您为正在使用的网络接口添加bytes sent per second
或计数器,则可以使用 Windows 性能监视器的更高版本为您提供时间指示。bytes read per second
性能监视器图表,最多显示1000个点(Windows 7 *
),如果精度不是太重要,可以将采样频率设置为60秒,总时长为60000秒(16.6小时)。
它不会非常准确,特别是在繁忙的服务器上,但可能会给你一个很好的指示,特别是如果你将它与其他计数器结合起来,例如逻辑磁盘活动、内核分页池大小等。
如果需要更高的时间精度或更长的持续时间,您可以始终启用日志记录。
将其与校验和实用程序结合使用以确保文件相同。
抱歉,下面的截图中窗口被挤压了,我不希望图像在 SF 上生成滚动条,但您可以大致看到 60/60000 的效果,如上所述。另外,请原谅图表上缺少有用的数据,显然我没有让它运行足够长的时间,但您明白我的意思。
*
我确信这也适用于 Windows Server 2008 R2,但目前还没有可用的设备来测试这一点。