尝试使用 Robocopy 镜像两个文件夹时,选项 /MIR 会导致在使用源文件时删除目标中的文件。特别是在备份我的 Outlook 文件夹并且 *.pst 文件正在使用时会发生这种情况。
输出如下:
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Tuesday, 18 August 2020 18:58:28
Source : P:\Outlook\
Dest : D:\_SyncFolderTest\To\Outlook\
Files : *.*
Options : *.* /BYTES /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /J /R:0 /W:30
------------------------------------------------------------------------------
23 P:\Outlook\
Newer 183116800 AVArchive_2018.pst
Newer 128009216 AVArchive_2019.pst
Newer 42427392 AVArchive_2020.pst
Newer 403801088 AVOutlook.pst
New File 131072 ~AVArchive_2018.pst.tmp
New File 131072 ~AVArchive_2019.pst.tmp
New File 131072 ~AVArchive_2020.pst.tmp
New File 131072 ~AVOutlook.pst.tmp
------------------------------------------------------------------------------
Total Copied Skipped Mismatch FAILED Extras
Dirs : 1 0 1 0 0 0
Files : 23 4 15 0 4 0
Bytes : 3545771008 524288 2787892224 0 757354496 0
Times : 0:00:00 0:00:00 0:00:00 0:00:00
Speed : 37449142 Bytes/sec.
Speed : 2142.857 MegaBytes/min.
Ended : Tuesday, 18 August 2020 18:58:28
正确的是 AVOutlook.pst 较新,但无法复制,不会引发错误,并删除 dest 中的旧版本。所以它不仅没有备份,而且之前的备份现在已经消失了。退出代码是出现问题的唯一线索: 8 = 无法复制某些文件或目录。
我有点理解,为了实现镜像,必须删除和替换dest的旧文件,但是为什么没有错误,为什么不识别source和dest中的文件是相关的?这是 Robocopy 的缺点还是设计决策?有没有更安全的方法?
这是 Robocopy 的缺点还是设计决策?
这是一个设计决策,并记录在案:
资料来源:Robocopy “强大的文件复制” - Windows CMD - SS64.com
是的,使用 VSHADOW 或 DISKSHADOW:
资料来源:Robocopy “强大的文件复制” - Windows CMD - SS64.com
确实如此,并且也记录在案(Robocopy 使用 EXIT CODES):
资料来源:Robocopy “强大的文件复制” - Windows CMD - SS64.com
您可以检查这些退出代码并在批处理文件中采取适当的措施。