У меня есть скрипт, который запускается каждую ночь в целях резервного копирования. Суть сценария в том, что он создаст резервную копию БД, сожмет ее в файл 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 продолжал пытаться, пока соединение не восстановится.

0