Код ошибки Robocopy 6 '' Неверный дескриптор ' - PullRequest
2 голосов
/ 18 декабря 2009

Я написал скрипт на 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: «Неверный дескриптор»

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

1 Ответ

1 голос
/ 19 декабря 2009

Google ищет "дескриптор robocopy недействителен" предполагает, что вы можете добиться успеха, используя параметр / b для "режима резервного копирования".

Даже если это не сработает, я бы предложил добавить код для вывода имен файлов по мере их копирования (или записи в журнал), и как только вы определили конкретный сбойный файл, вы также можете понять, что проблема.

...