У меня есть скрипт, который запускается каждую ночь в целях резервного копирования. Суть сценария в том, что он создаст резервную копию БД, сожмет ее в файл 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 заданы параметры повторов: 1 миллион раз и ожидание 30 секунд между каждой попыткой. Мой вопрос: почему мой сценарий пытается только дважды? Это из-за ERROR 2
? Повторите ли это, только если эта конкретная ошибка не очевидна? Есть ли способ заставить Robocopy продолжать повторную попытку, даже если произошла ОШИБКА 2?
Я действительно думаю, что проблема в том, что интернет "гаснет" на некоторое время (возможно, даже час или два). Я просто хочу, чтобы Robocopy продолжал пытаться, пока соединение не восстановится.