문제

하위 프로세스를 사용하여 Robocopy를 호출하여 원격 호스트에서 로그 파일을 동기화하는 Python 스크립트를 작성했습니다.

그렇게 :

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 : '핸들이 유효하지 않아'

그러나 명령 프롬프트에서 이것을 실행하면 오류가 발생하지 않습니다. 웹 검색에서 찾은 내용에서 이것은 전송중인 파일에서 이미 열린 파일 핸들과 관련이있을 수 있습니다. 이 오류에 대한 더 많은 정보가 있고 피하는 방법이 있습니까?

도움이 되었습니까?

해결책

Google을 검색합니다 "Robocopy 핸들이 유효하지 않습니다" "백업 모드"에 /b 옵션을 사용하여 성공을 거둘 수 있습니다.

그래도 작동하지 않더라도 복사 할 때 파일 이름을 출력하기 위해 코드를 추가하는 것이 좋습니다 (또는 로그인). 일단 특정 실패 파일을 식별 한 후에는 문제가 무엇인지 알 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top