RSYNC는 증분 백업을 수행하는 방법


14

rsync어떤 파일이 변경되었고 어떤 파일이 변경되지 않았는지 어떻게 알 수 있습니까? 파일 어디에서나 데이터를 기록합니까?

증분 백업을하고 싶지만 먼저 모든 파일을 전송합니다.

따라서 내 주요 질문은 : FTP를 통해 초기 파일을 업로드하지만에 의해 업로드하지 않는 경우입니다 rsync. 윌은 rsync여전히 그 기존 파일을 생략하거나 첫 번째 실행에 모든 것을 업로드합니다.

답변:


12

Rsync에는 볼 대상과 대상에 복사 할 대상을 제어하는 ​​여러 플래그가 있습니다. "아카이브"플래그 인 "-a"플래그가 가장 자주 사용되는데, 이는 아마도 당신이 원하는 것입니다. "-av"플래그와 함께 rsync를 실행하고 백업하려는 데이터에 대해 첫 번째 실행을 수행하십시오. 다음에 파일을 실행하면 파일의 블록 체크섬을 수행하고 기존 파일에서 수정 된 부분 만 복사하고 새 파일을 복사하고 더 이상 존재하지 않는 파일을 제거합니다. "-a"옵션 섹션을 확인하십시오 :

http://linux.die.net/man/1/rsync

첫 번째 실행은 BandWidth를 많이 사용하며 다음 실행은 프로세서를 많이 사용하지만 초기 실행에 비해 대역폭을 거의 사용하지 않습니다. 데이터 세트에 대해 많은 이탈이없는 한.

Rsync는 소스 또는 대상 디렉토리에 파일이있는 방법을 신경 쓰지 않으며 다른 것을 수행하기 위해 플래그를 추가하지 않는 한 두 파일 사이의 변경 사항을 복사합니다.

변경된 내용을 기록하려면 "--log-file"옵션을 사용할 수 있습니다. 이 같은 모든 것이 당신이 원하는 것 같습니다.

rsync -av --log-file=/var/log/rsync.log -e "ssh -l backup-user" backup-user@source-machine::module /nas01/backups

9

rsync는 '증분'을 수행하지 않으며 '차등'과 비슷합니다. 변경 사항을 전송하지 않으며 (이전 실행에 대한 지식이 있다고 가정) 차이를 전송 합니다 (소스를 대상 파일과 비교하여)

프로세스 단순화 :

  • 먼저 파일 크기, 생성 / 수정 날짜, 플래그를 확인합니다. 모두 동일하면 파일을 건너 뜁니다.
  • 대상에 해당 이름의 파일이 없으면 전체 파일을 복사하면됩니다.
  • 대상에 파일이 있으면 파일의 각 2KB에 대한 체크섬을 계산하여 보낸 사람에게 전송합니다.
  • 발신자는 원본 파일의 내용을 비교하고 대상과 비교하고 일치하지 않는 데이터에 대한 참조와 함께 아직 존재하지 않는 데이터를 전송합니다. 이를 통해 대상은 이전 대상 조각과 새 블록을 사용하여 전체 파일을 재구성 할 수 있습니다.

5

rsync는 데이터를 기록하지 않고 파일 수정 타임 스탬프와 내용을 확인합니다. ftp로 먼저 업로드하면 괜찮습니다-rsync는 모든 데이터를 다시 전송하지는 않지만 모든 내용을 통과하고 타임 스탬프를 수정합니다. 그러나 다시 큰 양도는 없을 것입니다.


5

어쩌면 나는 독창적이지만 증분 백업은 전체 백업이 먼저 있다는 것을 의미합니다. 그런 다음 해당 백업 이후에 파일 백업이 변경되었습니다. 그런 다음 이전 백업 이후에 백업의 다른 백업이 변경되었습니다. 따라서 전체 백업과 그 이후의 모든 증분 백업이 필요합니다.

따라서 아카이브 모드를 사용하는 것만 증분 백업이 아닙니다 . 차이가 중요하다고 생각합니다 . 파일이 변경되기 전에 시간을 거슬러 올라갈 수 없기 때문 입니다.

실제 증분 백업을 수행하려면 같은 옵션을 사용하십시오 --backup-dir. 여기에 예가 있습니다 .


1
증분 백업과 미러링 (rsync가 기본적으로 수행하는 작업)을 구분하려면 +1입니다.
sleske

아 예! 미러링은 내가 잡는 단어였습니다. 좋은 전화 :-)
Kyle Brandt

0

실제 질문이 "rsync를 통해 증분 백업을 수행하고 싶습니다"인 경우 몇 가지 옵션을 사용할 수 있습니다. Dirvish를 사용합니다.

http://www.dirvish.org/

스냅 샷을 제공하므로 복원이 쉽습니다. 하드 링크를 사용하여 파일이 동일한 공간을 절약하면서 완벽한 스냅 샷을 제공합니다. 내부적으로 rsync의 --link-dest 옵션을 사용합니다.

--link-dest=DIR         hardlink to files in DIR when unchanged

rsync를 사용하기 때문에 변경이 매우 작은 네트워크 대역폭 (및 시간)도 절약됩니다. 파일이 많고 링크 속도가 느린 경우 로컬에서 생성 된 dirvish 이미지 를 tar 및 sneakernet하는 경우에도 작동합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.