Код ошибки Robocopy 6: «Дескриптор недействителен»
-
20-09-2019 - |
Вопрос
Я написал скрипт Python, который использует подпроцесс для вызова robocopy для синхронизации файлов журналов с удаленного хоста.
Вот так:
program = 'Robocopy'
options = ['/S']
args.append(program)
args.append(options)
args.append('\\\\%s\%s' % (hostname, source_path))
args.append(local_path)
proc = subprocess.Popen(args=args, shell=True, stdout=cmd_log, stderr=error_log)
где source_path — это путь на удаленном хосте, а local_path — это путь на локальном хосте (оба пути UNC).Код обычно выполняется в процессе демона и запускается каждые несколько часов.Также возможно запустить этот код непосредственно в командной строке.Похоже, что иногда, когда он работает в процессе демона, я получаю сообщение об ошибке от Robocopy:
Код ошибки 6:«Дескриптор недействителен»
Но когда я запускаю это в командной строке, я не получаю ошибок.Судя по тому, что я нашел при поиске в Интернете, это может быть связано с дескрипторами файлов, которые уже открыты в передаваемых файлах.Есть ли у кого-нибудь дополнительная информация об этой ошибке и способах ее избежать?
Решение
Гугл ищет «дескриптор робокопии недействителен» предполагают, что вы можете добиться успеха, используя параметр /b для «режима резервного копирования».
Даже если это не сработает, я бы предложил добавить код для вывода имен файлов по мере их копирования (или регистрации), и как только вы идентифицируете конкретный файл с ошибкой, вы вполне можете понять, в чем проблема.