rsync
스크립트에서 다음 명령을 사용하여 소스에서 대상으로 파일을 복사합니다.
rsync -av --exclude 'share/web/sessions/' --rsync-path "sudo rsync" /sdata/ 172.31.X.X:/sdata/ &>/home/fsync/rsyncjob/output
이제 요구 사항에 따라 특정 일수가 지나면 일부 파일을 삭제하는 정리 스크립트가 소스 호스트에 있습니다. 파일이 원본 호스트에서 삭제되면 rsync
대상 호스트에서도 삭제되어야 합니다.
rsync
이를 위해 원본 호스트에서 파일을 삭제한 후 대상 호스트에서도 파일을 삭제하는 옵션이 제공되는 것을 볼 수 있습니다 --delete-before
. --delete-after
그러나 매뉴얼 페이지에 나와 있듯이 저는 이러한 옵션을 사용하는 것에 대해 회의적입니다.This option can be dangerous if used incorrectly! It is a very good idea to first try a run using the --dry-run option (-n) to see what files are going to be deleted.
내 업데이트된 명령은 다음과 같습니다
rsync -av --exclude 'share/web/sessions/' --delete-after --rsync-path "sudo rsync" /sdata/ 172.31.X.X:/sdata/ &>/home/fsync/rsyncjob/outpu
이 옵션이 맞나요? 이들은 우리의 프로덕션 호스트이며 이러한 옵션을 사용하기 전에 확인하고 싶습니다. 전문가에게 조언도 구해보세요.
답변1
--delete-after
rsync가 파일 목록을 다시 검색하도록 강제하기 때문에 사용하지 않을 것입니다 . 오늘 가장 좋은 옵션은 사용하는 것입니다 --delete-during
(또는 --del
간단히). I/O 오류 문제로 인해 "삭제 후" 효과를 유지하려면 --delete-delay
.
참조는 매뉴얼 페이지를 참조하십시오.
일부 옵션에서는 전체 파일 목록을 알기 위해 rsync가 필요하므로 이러한 옵션은 증분 재귀 모드를 비활성화합니다. 여기에는 --delete-before, --delete-after, --prune-empty-dirs 및 --delay-updates가 포함됩니다. 따라서 연결 종료가 3.0.0 이상이면 --delete가 지정된 경우 기본 삭제 모드는 이제 --delete-during입니다(이 향상된 삭제 모드를 요청하려면 --del 또는 --delete-during을 명시적으로 사용). . --delete-after를 사용하는 것보다 더 나은 대안인 --delete-delay 옵션도 참조하세요.
물론 각 방법마다 관련 섹션이 있습니다.