Robocopy 悄悄丢失文件

Robocopy 悄悄丢失文件

我正在使用 Robocopy 将数据从我们服务器的硬盘同步到外部磁盘作为备份。这是一个非常简单的解决方案,但几乎是我们能想到的最好/最简单的解决方案 - 我们使用两个外部磁盘并将它们轮换到异地。

无论如何,这是我用来执行此操作的脚本(删除了注释)。它运行良好,速度快,几乎 100% 完成 - 但是它对一些文件的行为相当奇怪(请注意,路径中的公司名称已更改以保护无辜者):

@ECHO OFF
set DATESTAMP=%DATE:~10,4%/%DATE:~4,2%/%DATE:~7,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2%

SET prefix="E:\backup_log-"

SET source_dir="M:\Company Names Data\Working Folder\_ADMIN_BACKUP_FILES\COMPA AANY Business Folder_Backup_040407\COMPANY_sales order register\BACKUP CLIENT FOLDERS & CURRENT JOBS pre 270404\CLIENT SALES ORDER REGISTER"


SET dest_dir="E:\dest"
SET log_fname=%prefix%%date:~-4,4%%date:~-10,2%%date:~-7,2%.log
SET what_to_copy=/COPY:DAT /MIR
SET options=/R:0 /W:0 /LOG+:%log_fname% /NFL /NDL

ROBOCOPY %source_dir% %dest_dir% %what_to_copy% %options%

set DATESTAMP=%DATE:~10,4%/%DATE:~4,2%/%DATE:~7,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2%
cscript msg.vbs "Backup completed at %DATESTAMP% - Logs can be found on the E: drive."
:END

通常源只是 M:\Company name data\ 但我稍微修改了脚本来测试问题。

源中的以下文件不会被复制到目标:

Someclient\SONICP~1.DOC
Someclient\SONICP~2.DOC
Someclient\SONICP~3.DOC

但是,同一目录中的文件名为:

时间轴~1.XLS 时间轴~2.XLS

被复制。我可以毫无困难地打开未复制的文件,而且当我运行 robocopy 时它们肯定没有被打开,所以这不是锁定问题。Robocopy 以管理员身份运行,所以这不是权限问题。

没有任何痕迹表明这些文件被尝试复制,因为在日志或命令提示符中没有输出任何错误。

有人知道这可能是什么吗?硬盘坏了吗?

干杯,约翰。

答案1

您确定执行 robocopying 的帐户有权读取这些文件吗?也许有人只编辑了几个文件的权限...

编辑:重新阅读帖子并意识到您已经测试了权限。

如果你只想测试这些文件,为什么不尝试使用 GUI 手动复制它们呢?如果可行,则只需运行以下一行:

robocopy "M:\Company Names Data\Working Folder\_ADMIN_BACKUP_FILES\COMPA AANY Business Folder_Backup_040407\COMPANY_sales order register\BACKUP CLIENT FOLDERS & CURRENT JOBS pre 270404\CLIENT SALES ORDER REGISTER\<filename_that_isn't_working>" E:\dest

从最基本的操作开始,然后添加内容,直到遇到问题。

答案2

您可能会遇到最大路径长度,包括终止文件名在内,只有 260 个字符。

我以前遇到过这种情况,Subversion 存储库具有深层目录,在 UNIX/Linux 系统上运行良好,但 Windows 系统上的人们无法执行完整的检出,因为某些路径太长。

答案3

我会尝试擦除该特定目录,然后查看文件是否被正确写入。

还可以在外部驱动器上运行 chkdsk。

目标上的文件系统是什么?其类型与源文件系统相同吗?

答案4

您说您的日志不包含任何有价值的信息,但您要求 robocopy 不要日志文件名和目录名:/NFL /NDL

您确实应该将日志记录选项推到最大限度,直到找到问题所在。

/X 报告所有额外文件,而不仅仅是选定的文件
/v 生成详细输出,并显示所有跳过的文件
/fp输出中包含文件的完整路径名
/np禁用进度条

为了解决您的问题,您可以尝试:
/zb使用重启模式。如果访问被拒绝,此选项将使用备份模式

如果出现任何失败,请尝试(我不记得这些选项的作用): /是包含相同的文件
/它包括“调整过的”文件

相关内容