Что произойдет, если второй экземпляр Robocopy запущен в той же папке?

У меня есть несколько резервных копий журнала SQL, запланированных для запуска каждые 15 минут, включая robocopy с параметром /MIR, в папку архива на томе облачного хранилища с помощью CloudBerry.

Иногда после полного резервного копирования и медленной сети полная резервная копия архива не завершается при запуске резервного копирования журнала, и я подозреваю, что проблема, вызванная второй robocopy, теперь также пытается скопировать большой файл полной резервной копии в дополнение к новая резервная копия журнала.

Что должно произойти? Если флаг повтора установлен на /R:60, должен ли второй экземпляр каким-либо образом пропускать файлы, уже скопированные другим экземпляром robocopy, или же эти два экземпляра robocopy будут объединяться друг с другом? Или должен быть запущен второй экземпляр с параметром /R:0, чтобы пропустить первый файл, все еще копируемый?

1 ответ

Решение

Я знаю, что этот ответ немного запоздал, и я надеюсь, что вы нашли решение, но вот мои 2 цента:

В Robocopy есть возможность "отслеживать источник" изменений, я думаю, это параметры /MON и /MOT. это предотвратит повторный запуск robocopy - он всегда будет выполняться в сценарии типа "горячей папки".

С помощью робокопии:

         /MON:n :: MONitor source; run again when more than n changes seen.
         /MOT:m :: MOnitor source; run again in m minutes Time, if changed.

Хотя это довольно старый вопрос, я не нашел правильного ответа и считаю, что он все еще актуален, поэтому вот мои выводы:

Я провел несколько тестов, и мне показалось, что RoboCopy делает снимок исходного и целевого каталогов и сравнивает, какие файлы необходимо скопировать из точки снимка.

Это означает, что если один экземпляр RoboCopy запускается сразу после другого, два экземпляра будут продолжать конфликтовать и перезаписывать друг друга, поскольку ни один из экземпляров не знает, что в целевом каталоге происходят изменения.

Если один экземпляр (экземпляр A) пытается скопировать тот же файл, что копирует другой экземпляр (экземпляр B), он будет ошибаться и либо повторить попытку (при использовании /R), либо перейти к следующему (если используется /R:0). Как только экземпляр B завершит работу с файлом, он попытается скопировать следующий файл в списке, что приведет либо к ошибке (если экземпляр A все еще копирует его), либо перезапишет файл (если экземпляр A уже перешел к следующему файлу).

Итак, в случае вопроса, наиболее вероятное поведение (при условии, что скорость сети и размеры файлов остаются в некоторой степени согласованными) заключается в том, что новый экземпляр RoboCopy перезапишет файлы резервной копии в начале списка, в то время как исходный экземпляр все еще копирует последний файлы в списке.

Другие вопросы по тегам