2016-10-28 3 views
0

원격 Linux 서버에서 로컬 Windows PC로 로그 파일을 다운로드하는 쉘 스크립트를 작성하고 있습니다 (다른 여러 작업을 수행 한 후) 쓰기, 쓰기, 가져 오기 등)이 원격 서버에서 완료되고 'has'로그 파일이 성공적으로 작성되면 다운로드하려고합니다. 이 while 루프를 사용하려고합니다.PSFTP (Linux) while 루프를 실행하는 방법

이 파일에서 서버에 FTP 파일이 있는지 확인합니다. 존재하지 않으면 (서버가 언젠가 파일을 삭제하고 로그 파일에 기록하기 때문에) 로그 파일을 다운로드하십시오. 파일이 여전히 존재하는 경우 파일이 삭제 될 때까지 기다리십시오. 다음은 스 니펫입니다.

call while [ ! -f /tmp/foo.txt ]; sleep 2; done 
get FileWriter1.log 

문제는 pftp가 while 명령을 인식하지 못하는 것입니다. 나는 심지어 전에 '전화'를 넣으려고했지만 여전히 작동하지 않습니다. 나는 그것을 어떻게 만들 수 있습니까?

미리 도움을 주셔서 감사합니다.

답변

0

psftp에 call 명령이 없습니다.

스크립트는 실제로 WinSCP script처럼 보입니다.

WinSCP에는 callget 명령이 모두 있습니다.

+0

안녕 마틴, 나는 winscp 이전에 사용했지만 나중에 결정하지 않았습니다. 호출이 winscp에서 작동했기 때문에 psftp에서도 작동 할 수 있지만 그렇게하지는 못했습니다. 왜 'while'과 같은 특정 명령을 정상적으로 실행할 수 없습니까? 그리고 그들을 실행하는 대체 구문은 무엇입니까? –

+0

먼저 SFTP 클라이언트에서 셸 명령을 실행할 수 있다고 생각합니까? –

+0

안녕 마틴, 나는 이제 이것을 이해하기 시작했다고 생각합니다. 필자는 쉘 스크립팅과 리눅스에 대한 새로운 경험을 통해 SFTP 클라이언트가 get, put 등의 다른 명령을 실행하는 것처럼 서버에 쉘 명령을 보낼 수 있다고 가정했습니다. –

관련 문제