백업 목적으로 LFTP를 사용하여 웹사이트(웹사이트 관리자)를 미러링하려고 합니다.
저는 LFTP 명령을 사용합니다(개인정보 보호를 위해 실제 경로, 사용자 이름 및 비밀번호가 수정됨).
mirror -e -p --verbose=1 /public_html /mnt/lobster3raid/<path>/public_html
작동 중입니다. 웹 서버에서 변경되지 않은 경우에도 LFTP가 미러에서 모든 파일을 제거한 다음 다시 전송하는 것뿐입니다(매번 모든 파일에서 이 내용을 얻습니다).
Removing old file `<path>/IMG_2003.jpg'
Transferring file `<path>/IMG_2003.jpg'
Removing old file `<path>/IMG_2004.jpg'
Transferring file `<path>/IMG_2004.jpg'
Removing old file `<path>/IMG_2005.jpg'
Transferring file `<path>/IMG_2005.jpg'
변경된/최신 파일만 전송하는 LFTP 미러를 실행하는 방법은 무엇입니까?
추가 배경:
대상 이미지는 Windows 공유 \\LOBSTER3\raid에 있습니다. 저는 Windows에서 이 작업을 수행하고 있습니다. 나는 한동안 Cygwin의 LFTP를 사용해 왔지만 최근에 Windows에서 권한 문제에 직면했습니다(분명히 Cygwin의 LFTP는 Windows가 좋아하지 않는 권한을 설정합니다).
이제 wsl(Ubuntu)에서 LFTP를 사용하고 있습니다. Windows에서 이 배치 파일을 실행합니다.
wsl -u root -- mkdir /mnt/lobster3raid
wsl -u root -- mount -t drvfs \\\\lobster3\\raid /mnt/lobster3raid
wsl -- lftp -u <username>,<password> <url> -e 'set ssl:check-hostname no; mirror -e -p --verbose=1 /public_html /mnt/lobster3raid/mirrors/1day/public_html'
답변1
옵션 없이 미러 명령을 사용하면 대상에 이미 존재하는지 여부에 관계없이 원본에서 대상으로 모든 파일이 전송됩니다. 이는 미러링의 기본 동작이 대상의 기존 파일을 덮어쓰는 것이기 때문입니다.정확히소스 파일 트리를 복사합니다.
찾고 있는 옵션은 다음 --only-newer
과 같은 최신 파일만 다시 업로드합니다.FTP 문서.
따라서 귀하의 경우 배치 파일은 다음과 같아야 합니다.
wsl -u root -- mkdir /mnt/lobster3raid
wsl -u root -- mount -t drvfs \\\\lobster3\\raid /mnt/lobster3raid
wsl -- lftp -u <username>,<password> <url> -e 'set ssl:check-hostname no; mirror -e -p --verbose=1 --only-newer /public_html /mnt/lobster3raid/mirrors/1day/public_html'