누군가가이 문제를 겪었는지 확실하지 않지만 문제 해결 및/또는 대체 방법에 대한 제안을하겠습니다.pscp를 수행하는 Windows 작업 스케줄러로 python 스크립트를 실행하는 데 문제가 있습니다.
나는 여러 개의 예약 된 작업을 실행중인 Windows 2008 서버가 있습니다. 이러한 작업 중 하나는 pscp를 사용하여 Linux 상자에 로그인하고 새 파일을 검사하며 새로운 것이 있으면 C : 드라이브의 로컬 디렉토리에 복사하는 python 스크립트입니다. 요점에서 스크립트에 일부 로깅을 넣었고 logging.basicConfig(level=DEBUG)
을 사용하고 있습니다.
변수를 사용하여 명령을 작성한 후에 command = 'pscp -pw xxxx [email protected]:/ c:\local_dir'
을 입력 한 다음 subprocess.call(command)
을 사용하여 명령을 실행합니다.
이제 이상한 부분이 있습니다. 명령 줄에서 스크립트를 수동으로 실행하면 정상적으로 작동합니다. 새 파일이 다운로드되고 처리됩니다. 그러나 작업 스케줄러에서 스크립트를 실행하면 새 파일이 다운로드되지 않습니다. 스크립트는 동일한 사용자로 실행되지만 다른 결과가 나타납니다.
스크립트 및 Linux 상자에서 작성된 로그 파일에 따르면 스크립트는 Linux 상자에 성공적으로 기록됩니다. 그러나 새 파일이 있어도 파일이 다운로드되지 않습니다. 다시 명령 줄을 통해 실행하면 파일이 다운로드됩니다.
아이디어가 있으십니까? 제안, 대체 방법?
감사합니다.
감사합니다. 둘 다 옳다는 것이 밝혀졌습니다. 작업 스케줄러는 다음 두 가지 방법으로 이상합니다. 그것은 매핑 된 드라이브를 좋아하지 않습니다. 그것은 UNC 참조와 잘 작동합니다. 둘째; 그것은 모든 것에 대한 전체 경로 참조를 좋아합니다. 파일, 명령, 스크립트 내의 구문, 모든 것. 사실,이 두 가지 기술을 사용하면 어떻게 문제를 해결할 수 있습니다. 이제는 내 유일한 문제는 두 가지 모두 작동하기 때문에 어떤 답이 올바른지 결정하는 것입니다. – user1070061