我有一个脚本,每晚运行一次以进行备份。该脚本的功能是备份数据库,将其压缩为 7zip 文件,然后将其复制到我设置的网络位置。
当使用 Robocopy 将文件移动到基于云的网络文件夹时,我的脚本出现以下错误,因此它可能因互联网而变得不可用。
02:29:32 Moving file...
02:29:32 Filename: MyBackup.7z
02:29:32 Src Folder: C:\SQLBackups\DBBackups\.
02:29:32 Dest Folder: \\myserver\database_backups
02:34:26 -------------------------------------------------------------------------------
02:34:26 ROBOCOPY :: Robust File Copy for Windows
02:34:26 -------------------------------------------------------------------------------
02:34:26 Started : Tuesday, October 30, 2018 2:29:32 AM
02:34:26 Source : C:\SQLBackups\DBBackups\
02:34:26 Dest = \\myserver\database_backups\
02:34:26 Files : MyBackup.7z
02:34:26
02:34:26 Options : /DCOPY:DA /COPY:DAT /MOV /NP /R:1000000 /W:30
02:34:26 ------------------------------------------------------------------------------
02:34:26 1 C:\SQLBackups\DBBackups\
02:34:26 New File 886.7 m MyBackup.7z
02:34:26 2018/10/30 02:33:56 ERROR 121 (0x00000079) Changing File Attributes C:\SQLBackups\DBBackups\MyBackup.7z
02:34:26 The semaphore timeout period has expired.
02:34:26 Waiting 30 seconds... Retrying...
02:34:26 New File 886.7 m MyBackup.7z
02:34:26 2018/10/30 02:34:26 ERROR 2 (0x00000002) Changing File Attributes C:\SQLBackups\DBBackups\MyBackup.7z
02:34:26 The system cannot find the file specified.
02:34:26 ------------------------------------------------------------------------------
02:34:26 Total Copied Skipped Mismatch FAILED Extras
02:34:26 Dirs : 1 0 0 0 0 0
02:34:26 Files : 1 0 0 0 1 0
02:34:26 Bytes : 886.70 m 0 0 0 886.70 m 0
02:34:26 Times : 0:04:53 0:04:23 0:00:30 0:00:00
02:34:26 Ended : Tuesday, October 30, 2018 2:34:26 AM
02:34:26 -------------------------------------------------------------------------------
02:34:26 Error moving file.
如上所示,它似乎在处理非常大的文件时遇到了问题。然后发生了一些事情,例如网络不可用或服务器上的共享出现问题。
默认情况下,Robocopy 的重试选项设置为重试 100 万次,每次重试之间等待 30 秒。我的问题是,为什么我的脚本只尝试了两次?是因为吗ERROR 2
?只有当特定错误不明显时才会重试吗?有没有办法让 Robocopy 即使发生错误 2 也继续重试?
我确实认为问题在于互联网“断线”了一段时间(甚至可能是一两个小时)。我只希望 Robocopy 继续尝试,直到连接恢复。
答案1
/MOV 移动文件,第一个错误发生后文件在源中不存在。第二个错误(文件不存在)是严重错误,会中断复制。