Pregunta

He escrito un script en Python que utiliza el subproceso llamar robocopy para sincronizar los archivos de registro desde un host remoto.

Al igual que:

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) 

donde SOURCE_PATH es el camino en el host remoto y local_path es la ruta de host local (ambas rutas UNC). El código normalmente se ejecuta en un proceso de demonio y se dio inicio a cada pocas horas. También es posible que se ejecuta este código directamente en la línea de comandos. Parece ser que a veces cuando se está ejecutando en un proceso de demonio me da un error de Robocopy:

El código de error 6: 'El identificador no es válido'

Pero cuando corro esto en el símbolo del sistema consigo ningún error. De lo que he encontrado en una búsqueda en Internet esto puede estar relacionado con los identificadores de archivo que ya están abiertos en los archivos que se transfieren. ¿Alguien tiene más información sobre este error y las maneras de evitarlo?

¿Fue útil?

Solución

Google busca "mango robocopy no es válido" sugiere que pudiese encontrar el éxito mediante el uso de la opción / b para el "modo de copia de seguridad".

Incluso si eso no funciona, me gustaría sugerir la adición de código para los nombres de archivo de salida a medida que se copian (o registrarlo), y una vez que haya identificado el archivo no específica, es muy posible que también se dan cuenta lo que el problema es.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top