Frage

Ich habe einen Python-Skript geschrieben, dass subprocess Anwendungen Robocopy zu Synchronisierungsprotokoll-Dateien von einer Remote-Host anrufen.

Wie so:

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) 

wo source_path ist der Weg, auf dem Remote-Host und local_path ist der Weg, auf dem lokalen Host (beide UNC-Pfade). Der Code wird in der Regel in einem Daemon-Prozess und wird alle paar Stunden gestartet. Es ist auch möglich, läuft dieser Code direkt an der Eingabeaufforderung. Es scheint, dass manchmal, wenn es in einem Daemon-Prozess läuft ich von Robocopy eine Fehlermeldung erhalten:

Fehlercode 6: 'Das Handle ist ungültig'

Aber wenn ich laufe dies auf der Eingabeaufforderung ich keine Fehler bekommen. Von dem, was ich in einem Web gefunden suchen, dies zu Datei-Handles in Beziehung gesetzt werden kann, die bereits geöffnet sind auf den Dateien übertragen werden. Hat jemand mehr Informationen zu diesem Fehler und Möglichkeiten, es zu vermeiden?

War es hilfreich?

Lösung

Google-Suchen für "Robocopy Handle ist ungültig" empfiehlt Ihnen viel Erfolg mit Hilfe der Option / b für „Sicherungsmodus“ finden könnte.

Auch wenn das nicht funktioniert, würde ich vorschlagen, Code zur Ausgabe Hinzufügen der Dateinamen, wie sie kopiert werden (oder es log), und wenn Sie die spezifische identifiziert haben versagt Datei, können Sie auch erkennen, auch was die Problem ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top