rsync를 사용하여 백업


14

나는 현재 (1) 대상 외부 하드 드라이브 B의 모든 것을 삭제하고 (2) A에서 B로 (Finder에서) 모든 것을 복사하여 외부 하드 드라이브 A의 내용을 백업합니다. 외장 하드 드라이브에는 "기본 데이터"(폴더, 이미지, 비디오, 문서 등) 만 포함되어 있으며 화려하거나 이상한 것도 없습니다.

그러나 거기에 존재하는 모든 놀라운 무료 도구로는 백업할만한 도구를 찾을 수 없었습니다 (제 안됨).

이것을 자동화하고 싶습니다. 몇 번 검색 한 후에 사용할 수있는 것 같습니다 rsync. 그런 다음 rsync대상 하드 드라이브에 이미있는 파일을 복사하지 않기 위해 이것을 사용하여 자동화하고 싶습니다 (물론 변경 사항이 있으면 파일 / 폴더를 업데이트하고 싶습니다. 삭제 된 파일 / 폴더 또는 새 파일과 동일) / folders; 아이디어는 내가 Finder로 수동으로하는 일을 모방하는 것입니다).

나는이 시점에 도착했다

rsync -av --progress --delete /Volumes/A/ /Volumes/B

이제 로그 이름으로 시작하는 파일이 가득 .하거나 ._또는 ._.. 그들이 필요합니까?

질문

중요한 파일 만 복사하여 중요하지 않은 파일은 모두 남기고 어떻게해야합니까? 예를 들어, 내가 가지고있는 경우에 photo.png나는 복사 기대 photo.png하지, ._photo.png또는 많은 파일.

어떤 --exclude또는 --exclude-fromMac에서 안전하게 사용할 수 있습니까? 모든 폴더를 수동으로 통과 한 경우 복사 할 수있는 "파인더가 표시하는 항목 만 복사"하는 것이 좋습니다.

 추가 질문

-av --progress --delete충분? 범죄를 저 지르거나 데이터를 위험에 빠뜨리고 있습니까? 어떤 옵션을 사용 하시겠습니까?

몇 가지 주장으로 답을 다시 보내 주시면 감사하겠습니다.

나는 rsync매우 강력하고 무료로 사용할 수있는 자동화 방법을 찾고 있습니다.


의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
bmike

첫 번째 단락에 설명 된 전략에서 (1) 이후 – B의 모든 항목을 삭제하는 경우 A에 심각한 문제가 발생하면 어떻게됩니까? A 및 이전 백업의 데이터에 대한 액세스 권한을 잃을 수 있습니다. 백업 스토리지에 충분한 공간이있는 경우 새 백업이 성공적으로 완료된 후에 만 ​​백업을 삭제하는 것은 어떻습니까?
Ricardo

1
채팅으로 이동 한 대화에 대한 @bmike의 링크가 손상되었습니다.
Merchako 2016 년

답변:


17

최대한의 안전을 위해 모든 것을 복사하십시오

가장 안전한 옵션은하는 모든 것을 복사 보이지 않는 메타 데이터 파일을 포함.

파일은 이유가 있고 소프트웨어가 변경됨에 따라 이러한 메타 데이터 파일의 존재, 목적 및 내용이 존재하는 경향이 있습니다. 모든 것을 복사하면 유지 관리 부담이 줄어들고 손실되는 것이 없다는 것을 쉽게 알 수 있습니다.

에 의해 생성 된 로그 파일 은 명령 줄 도구라는 rsync특성상 기술적으로 관련됩니다 rsync. 사용자가 확인하기 위해 정리 된 메타 데이터 필터링 및 컬러 코딩 된 출력을 제시하십시오. 광범위한 스크립팅 도구 및 언어를 사용하여이 작업을 수행 할 수 있습니다. 이 방법에 대한 도움이 필요하면 Ask DifferentStackOverflow 에 대한 추가 질문을하십시오 .

마지막 삭제 및 OS X 리소스 복사

rsync플래그 와 관련하여 한 외부 드라이브에서 다른 외부 드라이브로 방대한 데이터를 복사하는 가장 빠르고 안전한 방법 이라는 질문을 살펴보십시오 . 이 질문에서 몇 가지 추가 플래그가 사용되고 설명됩니다.

sudo rsync -vaE --progress --delete-after /Volumes/SourceName /Volumes/DestinationName

이 경우 E리소스 포크 및 기타 Mac 관련 속성이 복사됩니다.

당신은 고려할 수 있습니다 --delete-after복사가 완료 될 때까지 삭제되지 않도록; 이 방법을 사용하려면 소스 크기의 두 배인 대상 드라이브가 필요할 수 있습니다.

가능한 배제

관련 질문에 대한 답변, Time Machine 백업에서 FCPX 렌더 파일을 어떻게 생략 할 수 있습니까? 대부분의 백업에서 제외 할 수있는 OS X 파일 및 폴더 의 유용한 링크를 제공했습니다 . 이 링크는 제외 할 수있는 실용적인 파일 패턴, 폴더 및 경로 목록을 제공합니다.

도트 파일 포함

점으로 시작하여 .*파일을 일치시키는 파일 을 백업해야 할 이유가 있습니다.

일부 소프트웨어는 사용자 폴더의 맨 위에있는 폴더의 기본 설정, 설정 및 기타 값 정보를 보이지 않는 점 접두사 폴더로 유지합니다. 실행 ls -la ~/하면 이러한 폴더와 파일이 표시됩니다.

버전 제어 소프트웨어를 사용하는 소프트웨어를 사용하는 사용자가있는 경우 도트 파일을 백업하십시오. subversiongit 와 같은 소프트웨어는 중요한 정보를 도트 폴더 내에 저장합니다. 이러한 숨겨진 폴더는 프로젝트가 체크 아웃 된 파일 시스템에 분산 될 수 있습니다.

스포트라이트 및 디스크 액세스

Spotlight는 OS X의 검색 서비스입니다. Spotlight는이 mdworker프로세스를 사용하여 검색 카탈로그를 색인화하고 업데이트합니다. 가능한 디스크 손상 또는 느린 복사에 대해 우려되는 경우 실행 중에 비활성화mdworkerrsync 하면 도움이 될 수 있습니다. 개인적으로, 큰 rsync환승을 하면서 Spotlight를 계속 실행 합니다.


3
가장 안전한 옵션은 보이지 않는 메타 데이터 파일을 포함하여 모든 것을 복사하는 것입니다. 그러나 Carbon Copy Cloner의 동일한 링크에 따르면 자동으로 빌드 된 특정 파일이 있으므로와 함께 복사하면 파일이 손상 될 수도 있습니다 rsync.
Manuel

1
미래 독자들을위한 완전한 예를 추가 할 수 있습니다. 두 가지 소스, 하나둘을 찾았습니다 (그리고 세 번째 소스는 연결했습니다). 나중에 참조 할 수 있도록 여기에 남겨 둡니다.
Manuel

1
"점으로 시작하는 파일을 백업해야 할 이유가 있습니다": 예! 이 파일은 인형 용 Finder에서 숨겨져 있지만 대부분 매우 중요한 파일입니다.
dan

1
E--delete-after이 대답이기는 하나 만드는 키 포인트입니다.
dan

1
@danielAzuelos -E, 최신 버전 -X에서는 어떤 곳에서 권장되는 것이 있는데, 어느 것이 맞습니까? 아니면 둘 다? 나는 일반적인 걱정의 대부분을 다루는 최신의 의사 완성을 원합니다. 스포트라이트 파일을 생성하는 것보다 쉽고 빠르게 복사 할 수 있습니까? 스포트라이트가 멈추지 않도록하려면 어떻게해야합니까? 무엇에 대한 caffeinate과정을 보내고? 또는 백업 목록에 불과한 경우 Spotlight에서 색인을 생성 할 수 없게 만들거나 걱정을 덜 줄일 수 있습니다.이 질문 중 상당수가 확실하게 답변되었습니다.
Manuel

5

당신이 사용하는 경우 rsync카본 복사 Cloner를 당 또는 3.1.2 브루 당으로 버전 3.0.6을, 당신은 카본 복사 Cloner를 인수에서 큐를 수행 할 수 있습니다

rsync -A -X -H -p --fileflags --force-change -l -N -rtx --protect-decmpfs --numeric-ids -go --delete-during --backup --backup-dir=</PATH/TO/STICK/BACKUP_when_using_delete> --protect-args <SRC>/ <DEST>


--protect-decmpfs더 이상 3.1.3부터 ​​사용할 수 없습니다 ( github.com/Homebrew/homebrew-core/pull/23415 참조) .
user74686

4

백업하는 동안 메타 데이터 를 정리 하지 말고 , 특히 도트 파일 ( 예 : 점 파일)._$filename 을 제거하는 것이 좋습니다. 그러나 실제로 명령 에서 도트 파일 을 제외하려면 rsync추가 --exclude '.*'하십시오.

rsync -av --exclude '.*' --progress --delete /Volumes/A/ /Volumes/B

이거 좋다 나는 확실히 제거하는 경우 아니었다 모든 문제가 될 것입니다 점 파일을 (그런데, 사이에 어떤 차이가 '.*'하고 '/.*'?). 파인더가 그것들을 모두 복사한다고 생각하지는 않습니다. 이 경우 불필요한 것만 제외하는 것이 .DS_Store좋습니다 (예 :) . 그리고 네, 중요 할 수는 있지만 로그에 넣고 싶지 않은 정규 표현식으로 필터링 할 수 있습니다.
Manuel

1
Finder가 복사 한 내용은 문서화되어 있지 않으며 이는 백업 정책을 작성할 때 모든 사람의 문제의 원인입니다. 디스크 대신 정확하게 사용될 수있는 백업을 원할 경우 모든 파일 의 사본을 유지해야합니다 A.
dan

@danielAzuelos 경우가 아닙니다. 기본 하드 드라이브 A가 죽는 경우 세 번째 하드 드라이브 C를 구입하여 하드 드라이브 B에서 하드 드라이브 C로 복사하고 아마도 B 또는 C 중 하나를 사용하기 시작할 것입니다. 이것은 SuperDuper와 같은 방식으로 사용해야하는 백업이 아닙니다. 단지 내 사진이 한 곳이 아닌 두 곳에서 더 좋습니다.
Manuel

4

현재 답변에 완전히 만족하지는 않지만 웹에서 멋진 설정을 찾으려고했던 몇 가지 가능성을 여기에서 다루려고합니다 rsync.

그런데 Time Machine에 관심이 있다면 사본이 rsnapshot있습니다. 그리고 양방향 동기화를위한 Unison 도 있습니다 . 또한 Backup UtilityarRsync 와 같은 GUI가 실제로 있습니다 . 내가 찾던 것이 아니라 누군가를 위해 일할 수도 있습니다.

첫째, 내 유일한 의도는 사진과 비디오를 복제하는 것이기 때문에 정확한 사본이 필요하지 않으므로 너무 신경 쓸 필요가 없습니다 . 실제로 대부분의 의심은 모든 것을 배제 할 수 있는지에 대한 것입니다 (인터넷에서 사진을 다운로드하고 .png를 다운로드하면 다른 모든 것이 다운로드되지 않지만 자동 생성되는 경우와 동일 ).

다음은 고려해야 할 구조화되지 않은 생각 목록입니다.

  • 랩톱이 절전 모드로 전환되지 않도록 caffeinate하려면 프로세스를 원할 수 있습니다 caffeinate -s rsync -av .... 여기 에서 찍은 .

  • 내 경우처럼 로컬 복사본을 수행하는 경우, 또는 인터넷 연결이 너무 느린없는 경우에도, 당신은해야 하지 사용 -z옵션 (압축), 사용 -W(오히려 델타 전송보다 전송 전체 파일을, 이것은 기본 때 로컬) 아마도 --inplace전송을 빨리하는 데 사용 합니다. 여기 에서 찍은 .

  • 당신이 사용할 수있는 --delete-after모든 파일을 먼저 전송하고 목적지에 이동 (원래 하나를 삭제)하고 전송하기 전 또는 전송 중에 삭제보다 안전 할 수 있도록.

  • 을 눌러 전송을 중지하면 ctrl + C깨끗하게 중지됩니다. 여기 에서 찍은 . 이것은 SuperDuper에 대한 나의 두려움 중 하나였습니다!, 전송을 중지해야 할 경우“하드 드라이브를 알 수없는 상태로 둡니다”라는 메시지가 나타납니다.

  • 최신 버전에는에 --info=progress2더 많은 정보가 추가되어 -v있습니다.

  • 있다 -P(동일 어떤 --partial--progress(어떤 이유로 당신이 한 번에 동기화 해를 끝낼 수없는 경우) 당신이 프로세스를 다시 시작할 때 계속 할 수 있도록이 중반에 전송 된 파일을 떠날 것이다).

  • 복사하기 전에 Spotlight 또는 TimeMachine을 중지하고 전송 후 다시 활성화하는 것이 좋습니다. 심지어 외부 디스크에 대해 Spotlight를 비활성화하십시오.

  • 모든 참조에 사용되는 다른 옵션은 다음과 같습니다 -x(나 --one-file-system), -E( --executability), -H( --hard-links), -X( --xattrs), -A( --acls),과 --sparse, --hfs-compression, --protect-decmpfs. 당신은 그들을보고 싶을 수도 있습니다.

나에게 기본 명령은 다음과 같습니다 (더 많은 옵션을 사용할 수도 있지만 이것은 예를 들어 충분합니다).

caffeinate -s rsync -av --delete-after --progress --stats --exclude-from 'excludefile.txt' \
  "/Volumes/SrcHDD/" "/Volumes/DstHDD" # note the trailing slash / after the source

이제 내 경우에는 포함시킬 수 {*.jpg,*.png,*.mp4,*.txt,*.pdf,…}있으며 아무도 "시스템 파일도 필요"라고 말하지는 않지만 가능한 파일 형식을 모두 찾기 위해 검색하고 싶지 않기 때문에 제외하는 것을 선호합니다. 그리고 배제 할 수있을뿐만 아니라 배제하기 가 편리한 것들도 있습니다 .

몇 가지 링크를 찾았습니다. 원하는 것을 취하십시오.

  1. https://bombich.com/kb/ccc4/some-files-and-folders-are-automatically-excluded-from-backup-task

  2. https://gist.github.com/tvwerkhoven/4541989

  3. https://github.com/necolas/dotfiles

  4. https://gist.github.com/shkm/5531679

  5. http://www.hackurmac.com/2014/08/backing-up-and-restoring-your-hackintosh.html

  6. https://github.com/jedda/Counterpart

  7. http://alanwsmith.com/rsync-exclude-list-for-mac-osx

그리고 거기에서 당신은 아마 안전하거나 제정신이있는 것을 무시할 수있을 것입니다. 여기에 전체 목록이 있습니다 (방금 중복 항목을 제거했습니다)

.HFS+ Private Directory Data*
/.journal
/.journal_info_block
.AppleDouble
.AppleDB
/lost+found

.metadata_never_index
.metadata_never_index_unless_rootfs
/.com.apple.timemachine.donotpresent
.VolumeIcon.icns
/System/Library/CoreServices/.disk_label*
/TheVolumeSettingsFolder

.DocumentRevisions-V100*
.Spotlight-V100
/.fseventsd
/.hotfiles.btree
/private/var/db/systemstats

/private/var/db/dyld/dyld_*
/System/Library/Caches/com.apple.bootstamps/*
/System/Library/Caches/com.apple.corestorage/*
/System/Library/Caches/com.apple.kext.caches/*

/.com.apple.NetBootX

/Volumes/*
/dev/*
/automount/*
/Network/*
/.vol/*
/net

/private/var/folders/zz/*
/private/var/vm/*
/private/tmp/*
/cores/*

.Trash
.Trashes

/Backups.backupdb
/.MobileBackups
/.MobileBackups.trash
/.MobileBackups.trash

Library/Mobile Documents.*
.webtmp

/Library/Caches/CrashPlan
/PGPWDE01
/PGPWDE02
/.bzvol
/Library/Application Support/Comodo/AntiVirus/Quarantine
/private/var/spool/qmaster
$Recycle.Bin
Saved Application State
Library/Preferences/ByHost/com.apple.loginwindow*

.AppleDesktop
.com.apple.timemachine.supported
Network Trash Folder
/Library/Caches/*
/private/var/spool/postfix/*
$RECYCLE.BIN
/stuff/*
/afs/*
/private/var/run/*
/Previous Systems.localized
/tmp/*
.dbfseventsd
.DS_Store
.PKInstallSandboxManager
.SymAV*
.symSchedScanLockxz
.TemporaryItems
Desktop DB
Desktop DF
hiberfil.sys
pagefile.sys
Recycled
RECYCLER
System Volume Information
Temporary Items
Thumbs.db
AUTORUN.INF
Autorun.inf
autorun.inf

3

여러 작업에서 백업을 위해 rsync를 사용했으며 집에서 사용합니다.

나는 그것을 추천하지만 약간의 수정이 있습니다. 백업 도구로는 훌륭하지만 보관 도구로는 약간 평평합니다. 예, 모든 것을 복사하지만 모든 버전을 얻지 못하고 항상 최신 버전 만 얻습니다.

이 안내서 http://www.mikerubel.org/computers/rsync_snapshots/ 를 뛰어 넘는 지점으로 사용했습니다. 전체 페이지를 읽으십시오. 옵션을 설명하고 증분 백업을 구현할 수있는 방법을 간략하게 설명합니다. 놀랍게도이 기사는 10 살이 넘었지만 오늘날에도 여전히 적용됩니다. 유닉스를 좋아합니다.


1
감사. 어쨌든 나는 Mac OS X에서 취할 수있는 특별한 고려 사항을 다루고 싶었습니다. 나는 단지 가이드를 원하지 않았습니다 rsync. 어쨌든, 좋은 연결, 그것은 많은 것을 다루고 rsync있지만 오늘날 정확히 그렇게하는 도구가 있습니다 : rsnapshot.
Manuel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.