LFTP - lftp 미러 --reverse를 통해 업로드할 때 원격 서버에서 파일 삭제

LFTP - lftp 미러 --reverse를 통해 업로드할 때 원격 서버에서 파일 삭제

저는 lftp mirror --reverse원격 서버에 파일과 디렉터리를 업로드하는 쉘 스크립트를 사용하고 있습니다. 그 직전에는 모든 것을 삭제하곤 했습니다 glob -a rm -r -f *. 문제는 그 속도가 그리 빠르지 않다는 것이다. 전체 작업, 특히 재귀 삭제에는 몇 분이 걸립니다. 수백 개의 파일로 수 메가바이트의 데이터를 업로드하고 있는데 대부분의 파일은 변경되지 않은 상태입니다. FTPS 프로토콜을 통해 연결하고 있습니다.

질문

스크립트의 성능을 어떻게 향상시킬 수 있나요?

로컬 컴퓨터에 존재하지 않는 원격 서버의 파일을 삭제하면서 새로운 파일이나 로컬에서 변경된 파일만 업로드하려고 합니다. 안타깝게도 이것이 가능한지, 어떻게 달성할 수 있는지 모르겠습니다.

전체 스크립트:

lftp $host << EOF

user $username $password
cd $destination_directory
glob -a rm -r -f *
mirror --reverse $local_directory .
exit

EOF

답변1

해결책이 바로 눈앞에 있습니다. LFTP 매뉴얼을 조사하는 동안 명령에 내 요구 사항에 완벽하게 맞는 옵션이 mirror있다는 것을 발견했습니다.--delete

--delete

소스에 없는 파일은 삭제하세요~LFTP 매뉴얼

나는 변했어

glob -a rm -r -f *
mirror --reverse $local_directory .

도착하다

mirror --reverse --delete $local_directory .

관련 정보