Rsync - -b(백업) 플래그는 구체적으로 어떤 역할을 합니까?

Rsync - -b(백업) 플래그는 구체적으로 어떤 역할을 합니까?

-b 플래그가 수행하는 작업을 이해할 수 없습니다. 공식 문서에 따르면 :

이 옵션을 사용하면 각 파일이 전송되거나 삭제될 때 기존 대상 파일의 이름이 변경됩니다.

그러나 나는 이것이 무엇을 의미하는지 이해하지 못합니다. 삭제되는 파일의 이름을 어떻게 바꿀 수 있습니까? 백업과 관련된 파일 이름 바꾸기는 어떻게 됩니까? -b를 사용하여 rsync를 호출한 후 파일 이름이 변경되지 않았습니다.

rsync --delete -bavh

그리고 제가 다른 튜토리얼을 진행해도 사람들은 이 옵션을 실제로 사용하지 않습니다. 그래서 이 옵션이 정말 유용할까요?

차이점은 무엇입니까?

rsync --delete -bavh

그리고

rsync --delete -avh

또한 유용하지 않을 수도 있지만 제 사용 사례는 다음과 같습니다. 마운트된 WebDAV 드라이브에 데스크탑을 백업하고 싶습니다. 백업은 매일 지정된 시간에 자동으로 실행됩니다.

답변1

이 옵션의 목적은 backup덮어쓰거나 제거된 파일의 복사본을 보관하는 것입니다.

--backup-dir이러한 파일을 대상 디렉터리가 아닌 다른 디렉터리에 보관하는 데 사용할 수 있습니다 .

--suffix파일 이름에 추가되는 옵션을 사용하여 백업 접미사를 추가로 지정할 수 있습니다 . 이것이 없으면 지정된 디렉터리에 백업된 파일은 backup-dir원래 파일 이름을 유지합니다. 이를 통해 파일 이름을 바꾸고 원래 디렉터리에 유지할 수 있습니다( backup-dir필수 사항 아님).

따라서 를 사용할 때는 backup-diror 가 --suffix필요합니다 .backup

답변2

이것을 가지고 놀았습니다. 이것이 내가 알아낸 것입니다.

일종의 증분 백업을 생성하려면 --backup 및 --backup-dir을 사용하십시오.

다음 코드가 있다고 가정해 보겠습니다.

# test date with a timestamp:
date +%F_%H-%M-%S
2024-03-06_19-48-08

#
SRC=your/cooldir
DST=backups
INCDIR="${DST}/inc_$(date +%F_%H-%M-%S)"
rsync -avh --backup --backup-dir="$INCDIR" "$SRC/" "$DST/"

처음 실행하면/cooldir의 전체 백업(미러 동기화)인 backups/cooldir을 얻게 됩니다.

이제 your/cooldir에 newfile.txt 파일을 추가하세요. 코드를 다시 실행하세요. 파일이 삭제되거나 변경되지 않았으므로 INCDIR이 생성되지 않습니다.

이제 /cooldir/newfile.txt를 삭제하세요. 코드를 다시 실행하세요. 해당 파일이 삭제되고 --backup 및 --backup-dir이 지정되었으므로 이전과 같이 backup/cooldir(전체 백업)을 얻지만 디렉터리 backups/inc_2024-03-06_19-57-23도 얻습니다. 해당 증분 디렉터리 안에 newfile.txt가 있습니다. 삭제되었기 때문에 거기에 있습니다.

newfile2.txt를 생성하여 이를 다시 시도할 수 있습니다. 실행한 다음 두 번째 실행에서는 newfile2.txt를 수정하기만 하면 됩니다(삭제하지 마세요). 다시 backups/inc_xx 폴더에 newfile2.txt를 가져옵니다.

이제 코드를 시험해보고 다음 줄을 변경하세요.

INCDIR="${DST}/inc_$(date +%F)"

그리고 이러한 시나리오를 다시 실행하세요. 처음으로 backups/inc_2024-03-06에 newfile.txt가 생성됩니다. 두 번째로 동일한 디렉터리에 newfile.txt와 newfile2.txt가 모두 있게 됩니다. 즉, --backup 및 --backup-dir은 정확히 증분 백업이 아닙니다. 파일에 대한 마지막 변경/삭제를 누적하는 것에 가깝습니다.

마지막으로 다음과 같이 변경해 보세요.

rsync -avh --backup "$SRC/" "$DST/"

이번에는 변경되고 삭제된 파일의 이름이 물결표로 바뀌게 됩니다(예: newfile.txt~)

관련 정보