rsync의 delete 옵션
다양한 용도로 사용할 수 있는 도구이지만 특히 디렉터리 간의 동기화, 디렉터리 백업을 할 때 많이 사용된다.이때 자주 사용하는 옵션은
-a
--archive
과--delete
입니다.그 중에서
--delete
에는 미세한 행위가 다른 옵션이 존재한다.제가 이 옵션을 소개하겠습니다.delete 옵션
rsync
의 --delete
옵션은 전송 원본의 디렉터리에 존재하지 않고 전송 목적지의 디렉터리에 파일이 존재하면 삭제합니다.전형적인 사용 방법을 예를 들어 설명하다.
src
디렉터리를 backup
디렉터리에 백업하려면 다음 옵션을 지정하여 실행할 수 있습니다.rsync -a --delete src backup
이 명령의 -a
옵션에 따라 src
아래 파일의 각종 속성을 저장하고 복사backup
합니다.--delete
옵션은 src
에서 삭제된 파일을 backup
에서 삭제합니다.다양한 delete 옵션
rsync version 3.2.3의 man 페이지에 따라
--delete
와 같은 처리를 하는 4가지 옵션이 있습니다.이것들은 모두 --delete
와 같이 파일을 삭제하는 옵션으로 같은 결과를 얻었다.다른 것은 '언제' 파일을 삭제합니다.--delete-before
: 파일을 전송하기 전에 삭제할 파일을 스캔하고 전송 목적지에서 삭제합니다.--delete-during
: 파일을 전송하는 동안 삭제할 파일을 찾으면 삭제합니다.--delete-delay
: 파일을 전송하면서 삭제할 파일을 기록하고 전송이 끝난 후 전송 목적지에서 파일을 삭제한다.--delete-after
: 파일 전송이 끝난 후 삭제할 파일을 스캔하여 전송 목적지에서 파일을 삭제합니다.--delete
옵션은 rsync3.0.0 이후--delete-during
와 동일하게 지정되지 않았다.이 밖에 더 오래된 버전에서는 --delete-before
와 동작이 같다.어떤 옵션을 사용해야 합니까?
삭제 처리 시점을 자세히 논의하려면 매뉴얼에 장점과 단점이 적혀 있으니 읽은 뒤 꼼꼼히 따져보는 게 좋다.이 글은 보기만 간단히 소개했을 뿐 더 자세히 알고 싶으면 안내서를 읽어야 한다.
이 기초 위에서 나는 간단한 지침을 써 보았다.
원래부터 특별히 신경 쓰지 않았다면
--delete
됐다.중도의 행동이 조금이라도 다르면 결과가 같기 때문에 준비한 기본 처리에 협조하는 것이 타당하다.많은 경우
--delete-during
효율이 좋은 것 같아요.rsync3에서는 기본 동작입니다.rsync2에서도 이런 행동을 하려고 할 때 명확하게 지정한다.전송 목적지의 여유 용량이 적은 경우 먼저 전송 목적지의 파일
--delete-before
을 삭제하는 것이 유익하다.그러나 동기화 파일이 많은 경우 전체적으로 파일을 스캔하고 삭제하는 데 시간이 걸리기 때문에 실제 전송하기 전에 시간이 걸리는 것이 단점이다.상황에 따라 전송하기 전에 시간을 초과할 수 있습니다.파일을 삭제하는 것보다 파일 전송을 먼저 끝내고 싶다는 생각도 있다.전송 목적지의 여유 용량이 충분하면 삭제가 우선적이지 않을 수도 있죠.이런 경우
--delete-after
나--delete-delay
가 좋다.보태다
delete 옵션은 전송 목적지 디렉터리에서 파일을 삭제하는 처리로 파괴적인 작업입니다. 실행할 때 오류가 발생하지 않도록 주의하십시오.
예를 들어
rsync
를 사용할 때 오류가 발생하기 쉬운 요점으로 전송원 디렉터리 이름의 끝에 /
를 붙일지 안 붙일지는 다르다.오류를 방지하기 위해 -n
--dry-run
옵션과 -v
--verbose
옵션이 유용합니다.
Reference
이 문제에 관하여(rsync의 delete 옵션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/usamik26/articles/rsync-delete-options텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)