Rsync를 사용하여 외장 드라이브에 백업


17

집에있는 컴퓨터를 백업하기 위해 외장 하드 드라이브를 구입하고 있습니다 (최종 !!). rsync를 사용하고 싶습니다. 나는 내가 원하는 것을 정확하게하는 (또는하는 것처럼 보이는) 예를 보았습니다. 이 같은:

rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

그러나 rsync 설명서 및 예제 등을 살펴보면 상황이 훨씬 복잡해지기 시작했습니다. 네트워킹 및 데몬과 전문 용어, 오 마이!

컴퓨터에서 Firewire로 연결된 외부 드라이브로 재 동기화하는 한 그 중 어느 것도 필요하지 않다고 가정합니다. 나는 그것을 잘못 가정 해요? 그 무해한 명령보다 일이 실제로 더 복잡해 질까요?


답변:


10

Rsync는 로컬 드라이브에서 잘 작동합니다. 그러나 로컬 경로를 감지하면 자동으로 --whole-file 모드로 전환되어 diff를 복사하지 않고 소스 파일을 대상 파일에 복사합니다. Rsync는 여전히 변경되지 않은 파일을 무시합니다. 소스와 대상 사이의 대역폭이 두 로컬 디스크와 같이 높으면 두 파일을 모두 읽은 다음 변경된 비트 만 복사하는 것보다 훨씬 빠릅니다.


2
파일이 로컬 일 때, 두 파일을 모두 읽고 새로운 diff를 사용하여 새로운 부분을 작성 (다시 읽기)하는 것은 소스를 읽고 대상을 쓰는 것보다 훨씬 더 많은 작업입니다.
Javier

내 대답에 들어 가야할지 몰랐습니다. 지금 추가하겠습니다.
kbyrd 2016 년

31

나는 'glop'과 'trunc'와 'v'로 기억하기 쉬운 다음 플래그와 함께 rsync를 사용합니다.

rsync -gloptrunc $srcdir $dstdir

간단한 가이드 :

  • g-그룹 소유권 정보 유지
  • l-심볼릭 링크를 심볼릭 링크로 복사
  • o-소유자 정보 유지
  • p-권한 유지
  • t-타임 스탬프 유지
  • r-디렉토리를 통한 재귀
  • u-최신 파일을 건너 뛰고 업데이트하십시오.
  • [n]-아니요, 이러지 말고 대신 드라 이런을하십시오
  • c-체크섬, 가능한 경우 파일 블록에서 체크섬 시도 (*)
    참고 : 로컬 파일 시스템에서는이 파일이 재정의되고 전체 파일이 대신 복사됩니다.
  • v-상세

나는 항상 위의 내용을 실행하여 작동하는지 확인한 다음 결과에 만족하면 'n'플래그를 제거하십시오.

위 조합의 주요 특징 :

  • 두 대 이상의 서버간에 BOTH 방향으로 실행하므로 BOTH 방향으로 동기화됩니다. 당시에 마스터라고 느끼는 것을 업데이트하십시오.
  • 그것은 무엇인가를 지우고 싶다면 정말로 사라 졌는지 확인하기 위해 두 가지 모두에서 삭제해야한다는 중대한 주의 와 함께 마스터 가 될 수 있습니다.

이 기능을 사용하여 두 컴퓨터를 동기화하거나 하위 디렉터리를 동기화 (USB 드라이브에 백업)하는 데 사용합니다.

앞에서 언급 한 다른 게시물 중 하나에서 로컬 드라이브를 처리하는 경우 실제로 '체크섬'이 강제로 해제 될 수 있습니다.

드문 경우이지만 원격 컴퓨터의 로그인 계정 변경, 포트 변경 및 원격 호스트에서 'rsync'가 어디에 있는지 지정하기 위해 추가 매개 변수를 추가해야했지만 ... 질문.


3
rsync에 대한 -a 플래그가 위의 모든 작업을 수행하지 않습니까?
Rory

2
나는 그들이 무엇을하는지 확실하지 않을 때 '메타'플래그를 사용하는 것을 좋아하지 않습니다. rsync의 manapage는 '-a'가 실제로 내 상자에서 -rlptgoD임을 나타내며 'u'와 'v'는 건너 뛰지 만 'D'는 포함합니다. 그 중에서도 'u'를 추가하는 것이 유일한 주요 차이점이라고 생각합니다.
ericslaw

양방향으로 복사하지 않고 소스에서 대상으로 미러링하도록하려면 어떻게해야합니까 (소스에없는 대상에서 삭제)?
Gabriel Staples

1
를 사용해야 할 것 같습니다 rsync -gloptrunc --delete --delete-excluded $srcdir $dstdir. 는 --delete원본에없는 대상에서 아무것도 삭제라고하고, --delete-excluded또한 일반적으로 추적하거나 복사 할 수 없습니다 것 대상에서 제외 된 파일을 삭제했다. --delete-excluded기술적으로을 사용하면을 (를) 사용할 필요는 --delete없지만 어쨌든 사용할 수 있습니다. 자세한 내용은 맨 페이지 linux.die.net/man/1/rsync에 있습니다.
Gabriel Staples

참고 : 일반적인 rsync 사용법에 대해서는 지금이 자습서를 작성 했으므로 필요에 따라 참조 할 수 있습니다. rsync 사용 방법
Gabriel Staples

4

그 어느 것도 필요하지 않습니다. 데몬이나 다른 종류의 구성없이 rsync를 사용할 수 있습니다. JUST FINE!

rsync 명령을 사용하면 좋습니다.


2

rsync 명령의 경로로 판단하면 Mac OS X을 사용하고 있다고 생각합니까?

개인적으로 Time Machine (Leopard를 사용하는 경우) 또는 rsync를 사용하는 Carbon Copy Cloner ( http://www.bombich.com/software/ccc.html )를 선택합니다.

직접 스크립트를 작성하는 것보다 훨씬 쉽습니다. 한 가지 장점은 Time Machine과 CCC가 모두 증분 백업을 제공한다는 것입니다.


2

사용한 예제는 백업에 적합합니다.

rsync를 사용할 때 고려해야 할 사항 중 하나는 --link-dest 옵션을 사용하는 것입니다. 이를 통해 여러 백업을 유지할 수 있지만 변경되지 않은 파일에 대해 하드 링크를 사용하면 모든 백업이 증분의 공간을 효과적으로 차지하게됩니다. 사용 예는 다음과 같습니다.

rsync -aE --link-dest=/mnt/external_disk/backup_20090612 dir_to_backup \
    /mnt/external_disk/backup_20090613

6 월 12 일에 날짜가 지정된 백업이 있고 6 월 13 일에 새 백업을 작성한다고 가정합니다. 모든 파일을 인쇄하지 않으려면 -v 옵션을 생략 할 수 있습니다.


1
rsnapshot은 전체 버전 백업을 공간 효율적인 방식으로 유지하기 위해 설명하는대로 링크 대상을 사용하는 백업 시스템입니다.
Rory

1

실제로 데이터베이스를 실행 중인지 여부에 따라 다릅니다. Rsync는 모든 파일의 스냅 샷을 가져 오며 중재 쓰기는 무시합니다. 데이터베이스를 백업하려면 rsync 전에 무시 필터를 설정하고 DB 덤프 도구를 실행해야합니다.


1

작성된 명령이 제대로 작동하지만 rsync 위에 구축 된 rsnapshot이라는 프로그램을보고 여러 버전의 파일을 유지하여 지난 주나 지난 달의 상태로 되돌아 갈 수 있습니다. 구성은 매우 쉽고 공간 최적화에 정말 좋습니다. 이탈이 많지 않으면 단일 백업보다 더 많은 공간을 차지하지 않습니다.


1

운영 체제에 대해서는 언급하지 않았습니다. * nix 기반 OS라는 가정하에 귀하의 명령이 좋습니다.

그러나 하나 또는 두 개의 드라이브가 NTFS로 포맷되어 * nix 또는 Mobaxterm / cygwin을 사용하여 Windows 내에서 액세스되는 경우 rsync 증분 기능이 제대로 작동하지 않습니다. rsync -a (archive flag)

NTFS 드라이브가 관련된 경우 다음을 사용할 수 있습니다.

rsync -rvh --size-only --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

Windows에서 rsync 기능을 사용하려면 Mobaxterm ssh 클라이언트를 다운로드하십시오.

NTFS 드라이브에서 rsync를 사용하는 방법 에 대한 자세한 내용 은 다음과 같습니다.


0

백업을 위해 rsync를 사용해 보았지만 결국 혼란스러워졌습니다. rsync는 백업보다는 '동기화'에 더 적합합니다. 그리고 큰 파일을 비교하는 것은 영원히 지속됩니다.

나는 조금 연구하고 여러 가지를 시도했다 (기본적으로 우분투의 apt-cache 검색 백업에서 모든 사람을 테스트).

마지막으로 ' backup2l- 유지 보수가 적은 백업 / 복원 도구'로 끝났습니다 . 쉽습니다. 나는 계획과 로테이션을 관리하는 방식을 좋아합니다 (레벨). 명령 줄에서 USB 외장 드라이브를 연결할 때마다 실행하지만 자동화 할 수도 있습니다.


0

dirvish를 시도하여 백업을 수행하십시오. http://www.dirvish.org/
소위 볼트에서 rsync의 하드 링크를 사용합니다. USB 디스크가 사용할 수있는만큼 오래된 덤프를 유지할 수 있습니다. 또는 자동화 된 방식으로 설정하십시오.

dirvish에 대한 아이디어를 이해하면 모든 옵션과 함께 rsync보다 사용하는 것이 더 편합니다.


rsnapshot은 dirvish와 유사
Rory

0

Windows 기반 컴퓨터에 대한 해결책을 찾았습니다 : http://www.itefix.no/i2/node/10650

D : \ 파티션을 외부 드라이브 K : \에 복사하려면

rsync -aE --delete --progress /cygdrive/d/* /cygdrive/k

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