저는 AIX 7.1을 사용하고 있습니다.
나는 몇 가지 쉘 스크립트를 만들고 이름을 /bin/bsh로 지정했습니다.
스크립트에서는 FTP를 통해 서버에 연결하고 와일드카드 문제를 방지하기 위해 get 명령을 많이 사용합니다. 다음과 같이 각 파일 이름을 선언하고 하나씩 가져옵니다.
get PDF_02378230_20110609.PDF
get PDF_02432482_20110609.PDF
get PDF_02432565_20110609.PDF
get PDF_02432573_20110609.PDF
get PDF_02432581_20110609.PDF
get PDF_02432599_20110609.PDF
get PDF_02432607_20110609.PDF
get PDF_02432615_20110609.PDF
get PDF_02432623_20110609.PDF
get PDF_02432649_20110609.PDF
get PDF_02432656_20110609.PDF
get PDF_02432672_20110609.PDF
get PDF_02432755_20110609.PDF
get PDF_02432763_20110609.PDF
get PDF_02432821_20110609.PDF
get PDF_02432920_20110609.PDF
get PDF_02433175_20110609.PDF
get PDF_02433266_20110609.PDF
get PDF_02433290_20110609.PDF
get PDF_02433308_20110609.PDF
get PDF_02433373_20110609.PDF
get PDF_02433399_20110609.PDF
하나의 쉘 스크립트로 최대 100,000개의 파일을 전송할 수 있습니다. 나는 이 쉘 스크립트를 실행하고 ftp를 통해 파일을 다운로드하도록 할 것입니다. 그러나 일부 쉘 스크립트에는 "가져오기"되지 않은 누락된 파일이 1~2개 있습니다. 예를 들어, 파일 수를 세어보면 쉘 스크립트의 "get" 명령 수보다 1~2개 정도 적을 것입니다. 로그에서 예외나 오류를 찾을 수 없습니다. 문제는 너무 길기 때문에 전체 로그를 한 줄씩 살펴볼 수 없다는 것입니다. 하지만 어떤 파일이 누락되었는지 찾았습니다. 누락된 파일 이름이 있는 로그 파일을 검색해 보았지만 해당 파일 이름에 대한 흔적을 찾을 수 없습니다.
답변1
일부 FTP 클라이언트에는 lftp
로컬 및 원격 폴더를 동기화하는 데 필요한 작업을 결정하여 이러한 문제를 방지하는 데 사용할 수 있는 명령이 ncftp
있습니다 .mirror
클라이언트가 mget
재귀 다운로드를 수행하고 그 안의 모든 항목 대신 상위 폴더에서 작동하는 방법을 지원하는지 확인할 수도 있습니다.
그러나 가장 좋은 해결책은 다른 프로토콜로 전환하는 것입니다. 지금이 시작하기에 좋은 시기인 것 같습니다 rsync
.
답변2
다른 쪽 끝이 FTP 서버여야 한다면 wget으로 전환하겠습니다. 그럼에도 불구하고 개별 파일이 올바르게 전송되지 않는 예외를 처리해야 합니다. 그러나 wget을 사용하면 최소한 파일당 몇 번씩 재시도하도록 지시할 수 있고, 다시 실행할 수도 있지만 로컬에서 크기가 같은 모든 파일을 무시하도록 지시할 수 있습니다(따라서 그렇지 않은 파일만 다시 가져옵니다). 먼저 가져오기) 횟수를 얻지 못했습니다).
AIX 7.1에 wget이 사전 설치되어 있는지는 확실하지 않지만 Linux Toolbox CD에 있거나 다음에서 다운로드할 수 있습니다.IBM 웹사이트.