Question

Je l'ai écrit un script python qui utilise subprocess pour appeler robocopy pour synchroniser les fichiers journaux à partir d'un hôte distant.

comme ceci:

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) 

où source_path est le chemin sur l'hôte distant et local_path est le chemin sur l'hôte local (les deux chemins UNC). Le code est généralement exécuté dans un processus démon et se lancé toutes les quelques heures. Il est également possible de ce code fonctionne directement sur l'invite de commande. Il semble que, parfois, quand il est en cours d'exécution dans un processus démon je reçois une erreur de Robocopy:

Code d'erreur 6: 'Le manche est non valide'

Mais quand je lance ceci sur l'invite de commande je reçois aucune erreur. D'après ce que j'ai trouvé dans une recherche sur le Web cela peut être lié à déposer des poignées qui sont déjà ouverts sur les fichiers transférés. Quelqu'un at-il plus d'informations sur cette erreur et les moyens de l'éviter?

Était-ce utile?

La solution

Google cherche "poignée de robocopy est invalide" suggérez que vous pourriez trouver le succès en utilisant l'option / b pour « mode de sauvegarde ».

Même si cela ne fonctionne pas, je vous suggère d'ajouter le code pour sortir les noms de fichiers comme ils sont copiés (ou le journal), et une fois que vous avez identifié le fichier à défaut spécifique, vous pouvez bien se rendre compte aussi ce que le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top