Domanda

Ho scritto uno script python che usa il sottoprocesso per chiamare robocopy per sincronizzare i file di registro da un host remoto.

In questo modo:

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) 

dove source_path è il percorso sul host remoto e local_path è il percorso sull'host locale (entrambi i percorsi UNC). Il codice viene eseguito in genere in un processo demone e viene dato il via ogni poche ore. E 'anche possibile corre questo codice direttamente sul prompt dei comandi. Sembra che a volte quando è in esecuzione in un processo demone ottengo un errore da Robocopy:

Codice errore 6: 'l'handle non valido'

Ma quando ho eseguito questo sul richiamo di ordine ottengo nessun errore. Da quello che ho trovato in una ricerca sul web questo potrebbe essere correlato al file maniglie che sono già aperti i file trasferiti. Qualcuno ha maggiori informazioni su questo errore e modi per evitarlo?

È stato utile?

Soluzione

Google cerca "manico robocopy non è valido" suggerisco si potrebbe trovare il successo utilizzando l'opzione / b per "modalità di backup".

Anche se questo non funziona, io suggerirei l'aggiunta di codice per emettere i nomi dei file mentre vengono copiati (o il registro di esso), e una volta che hai identificato il file in mancanza di specifica, si può ben anche realizzare ciò che il problema è.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top