이중성은 파일 이름이 바뀌면 모든 데이터를 다시 보냅니다.

Nov 17 2020

test/임의의 1GB 파일을 포함 하는 디렉토리를 만들고 이중성을 사용head -c 1G </dev/urandom >test/1GBfile 하여 백업을 수행해 보겠습니다 .

duplicity test/ file:///home/www/backup/

그런 다음 /home/www/backup/약 1GB를 차지하는 암호화 된 아카이브를 포함합니다.

그런 다음 몇 바이트의 새 파일을 추가 echo "hello" >test/hello.txt하고 백업을 다시 실행합니다.

duplicity test/ file:///home/www/backup/

backup/~ 1기가바이트 아직도있다. 증분 백업에서 평소와 같이 1KB 미만의 파일 몇 개만 생성되었습니다.

이제 1GB 파일의 이름을 바꾸고 mv test/1GBfile test/1GBfile_newname증분 백업을 다시 실행 해 보겠습니다 .

duplicity test/ file:///home/www/backup/

그럼 backup/지금 ~ 2GB! .

duplicity새 이름을 가진 동일한 파일 내용이라는 사실을 왜 고려하지 않습니까?

여기서 네트워킹을 사용했다면 파일 내용이 정확히 동일하더라도 1GB 전송을 낭비했을 것입니다. 일반적으로이 문제를 처리하는 duplicity사용 rsync,이 문제를 피할 수있는 옵션이 있습니까?


.txt 파일을 추가 한 후 로그 :

--------------[ Backup Statistics ]--------------
StartTime 1605543432.43 (Mon Nov 16 17:17:12 2020)
EndTime 1605543432.72 (Mon Nov 16 17:17:12 2020)
ElapsedTime 0.29 (0.29 seconds)
SourceFiles 3
SourceFileSize 1073745926 (1.00 GB)
NewFiles 2
NewFileSize 4102 (4.01 KB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 2
RawDeltaSize 6 (6 bytes)
TotalDestinationSizeChange 230 (230 bytes)
Errors 0
-------------------------------------------------

파일 이름 변경 후 로그 :

--------------[ Backup Statistics ]--------------
StartTime 1605543625.97 (Mon Nov 16 17:20:25 2020)
EndTime 1605543840.72 (Mon Nov 16 17:24:00 2020)
ElapsedTime 214.76 (3 minutes 34.76 seconds)
SourceFiles 3
SourceFileSize 1073745926 (1.00 GB)
NewFiles 2
NewFileSize 1073745920 (1.00 GB)
DeletedFiles 1
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 3
RawDeltaSize 1073741824 (1.00 GB)
TotalDestinationSizeChange 1080871987 (1.01 GB)
Errors 0
-------------------------------------------------

TotalDestinationSizeChange 1080871987 (1.01 GB), arghh! 파일 이름변경되었습니다 !

답변

Basj Nov 18 2020 at 18:05

duplicity실제로 "이름 변경을 처리"하지 않는 것 같습니다 . 여기에서이 열을 참조하십시오.https://wiki.archlinux.org/index.php/Synchronization_and_backup_programs#Chunk-based_increments

duplicity사용 하기 때문에 librsync( "이름 변경 처리"하지 않음 ) 정상으로 보입니다.