Sử dụng rsync để sao lưu


13

Tôi hiện đang sao lưu nội dung của ổ cứng ngoài A bằng cách (1) xóa mọi thứ trong ổ cứng ngoài B đích và (2) sao chép mọi thứ từ A sang B (trong Finder). Ổ cứng ngoài chỉ chứa dữ liệu cơ bản của người dùng khác (thư mục, hình ảnh, video, tài liệu, v.v.), không có gì lạ mắt / kỳ lạ.

Nhưng với tất cả các công cụ miễn phí tuyệt vời tồn tại ngoài đó, tôi không thể tìm thấy một công cụ tốt để sao lưu (đề xuất được chấp nhận).

Tôi muốn tự động hóa điều này. Sau một vài tìm kiếm, dường như tôi có thể sử dụng rsync. Sau đó, tôi muốn tự động hóa việc này bằng cách sử dụng rsyncđể tránh sao chép các tệp đã có trên ổ cứng đích (tất nhiên, nếu thay đổi đã được thực hiện, tôi muốn cập nhật tệp / thư mục; tương tự với các tệp / thư mục đã xóa hoặc các tệp mới / thư mục; ý tưởng là bắt chước những gì tôi thường làm thủ công với Finder).

Tôi đã đến điểm này

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

Bây giờ các bản ghi là đầy đủ của file mà tên bắt đầu bằng .hoặc ._hoặc thậm chí ._.. Họ có cần thiết không?

Câu hỏi

Làm cách nào tôi chỉ có thể sao chép các tệp quan trọng, bỏ lại tất cả những tệp không quan trọng. Ví dụ, nếu tôi có photo.pngtôi sẽ sao chép photo.png, không ._photo.pnghoặc nhiều tệp.

Những gì --excludehoặc --exclude-fromcó thể được sử dụng một cách an toàn trên máy Mac? Có thể là một quy tắc tốt là chỉ cần sao chép bất cứ thứ gì mà Finder hiển thị, đó là thứ tôi sẽ sao chép nếu tôi chuyển thủ công qua tất cả các thư mục.

 Câu hỏi thêm

-av --progress --deleteđủ? Tôi có phạm tội hay mạo hiểm một số dữ liệu không? Những tùy chọn bạn sẽ sử dụng.

Xin vui lòng, trở lại câu trả lời của bạn với một số đối số, tôi sẽ đánh giá cao nó.

Tôi đang tìm cách tự động hóa rsynccó vẻ khá mạnh mẽ và miễn phí để sử dụng.


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
bmike

Trên chiến lược được mô tả ở đoạn 1, điều gì xảy ra nếu sau (1) - xóa mọi thứ trong B - một vấn đề nghiêm trọng xảy ra với A? Bạn có thể mất quyền truy cập vào dữ liệu trên A và trên bản sao lưu trước đó. Nếu bộ lưu trữ sao lưu của bạn có đủ dung lượng, làm thế nào về việc xóa bản sao lưu chỉ sau khi bản sao lưu mới hơn được hoàn thành thành công?
Ricardo

1
Liên kết của @ bmike đến cuộc trò chuyện đã được chuyển sang trò chuyện bị hỏng.
Merchako

Câu trả lời:


17

Để an toàn tối đa, hãy sao chép mọi thứ

Các an toàn nhất lựa chọn là để sao chép tất cả mọi thứ , bao gồm các file meta-data vô hình.

Các tệp có xu hướng tồn tại vì một lý do và khi phần mềm thay đổi, thì sự tồn tại, mục đích và nội dung của các tệp dữ liệu meta này cũng vậy. Sao chép mọi thứ sẽ giảm bớt gánh nặng bảo trì và mang đến sự thoải mái rằng không có gì bị mất.

Tệp nhật ký được tạo bởi rsyncsẽ liên quan đến kỹ thuật bởi bản chất rsynclà một công cụ dòng lệnh. Xem xét việc trình bày một dữ liệu được sắp xếp gọn gàng, được lọc và thậm chí có thể được mã hóa màu để người dùng kiểm tra. Bạn có thể làm điều này với một loạt các công cụ và ngôn ngữ kịch bản. Vui lòng đặt thêm câu hỏi tại đây trên Hỏi khác nhau và trên StackOverflow nếu bạn cần trợ giúp với phương pháp này.

Xóa lần cuối & Sao chép tài nguyên OS X

Về các rsynccờ, hãy xem câu hỏi Cách nhanh nhất và an toàn nhất để sao chép dữ liệu lớn từ ổ đĩa ngoài này sang ổ đĩa ngoài khác . Trong câu hỏi này, một vài cờ bổ sung được sử dụng và giải thích:

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

Trong tình huống này, Esẽ đảm bảo các nhánh tài nguyên và các thuộc tính cụ thể khác của Mac được sao chép.

Bạn có thể muốn xem xét --delete-afterđể tránh xóa cho đến khi bản sao hoàn thành; xin lưu ý rằng phương pháp này sẽ có khả năng yêu cầu ổ đĩa đích gấp đôi kích thước của nguồn.

Loại trừ có thể

Câu trả lời cho một câu hỏi liên quan, Làm cách nào tôi có thể bỏ qua FCPX Render Files từ bản sao lưu Time Machine? , đã cung cấp một liên kết hữu ích của các tệp và thư mục OS X có thể được loại trừ khỏi hầu hết các bản sao lưu . Liên kết này cung cấp một danh sách thực tế về các mẫu tệp, thư mục và đường dẫn mà bạn có thể loại trừ.

Bao gồm các tập tin dấu chấm

Có những lý do chính đáng để sao lưu các tập tin bắt đầu bằng dấu chấm, .*tập tin phù hợp.

Một số phần mềm giữ các tùy chọn, cài đặt và thông tin khác về giá trị trong các thư mục ở đầu thư mục người dùng trong các thư mục tiền tố chấm vô hình. Chạy ls -la ~/sẽ tiết lộ các thư mục và tập tin.

Nếu bất kỳ người dùng nào sử dụng hoặc có phần mềm lần lượt sử dụng phần mềm kiểm soát phiên bản, hãy đảm bảo sao lưu các tệp chấm. Phần mềm như lật đổgit đều lưu trữ thông tin quan trọng trong các thư mục dấu chấm của chúng. Các thư mục ẩn này có thể được phân tán trên hệ thống tệp của bạn, nơi từng dự án được kiểm tra.

Spotlight và truy cập đĩa

Tiêu điểm là dịch vụ tìm kiếm của OS X. Spotlight sử dụng mdworkerquy trình để lập chỉ mục và cập nhật danh mục tìm kiếm. Nếu bạn lo lắng về khả năng hỏng đĩa hoặc sao chép chậm, vô hiệu hóamdworker trong khi chạy rsynccó thể giúp ích. Cá nhân, tôi để Spotlight chạy trong khi chạy rsyncchuyển khoản lớn .


3
Tùy chọn an toàn nhất là sao chép mọi thứ, bao gồm các tệp siêu dữ liệu vô hình. Nhưng cùng một liên kết từ Carbon Copy Cloner nói rằng có một số tệp nhất định được tạo tự động để nó thậm chí có thể làm hỏng chúng nếu bạn sao chép rsync.
Manuel

1
Bạn có thể thêm một ví dụ đầy đủ cho độc giả trong tương lai. Tôi tìm thấy hai nguồn, mộthai (cộng với nguồn thứ ba mà bạn liên kết); Tôi để chúng ở đây để tham khảo trong tương lai.
Manuel

1
"Có những lý do chính đáng để sao lưu các tập tin bắt đầu bằng dấu chấm": có! Các tệp này được ẩn (từ Finder cho người giả) nhưng hầu hết thời gian đây là những tệp rất quan trọng.
dan

1
Các E--delete-afterlà những điểm chính mà làm cho câu trả lời này một chiến thắng.
dan

1
@danielAzuelos Kể từ -E, trong các phiên bản mới hơn -X, tôi thấy đề xuất ở một số nơi, cái nào đúng? Hay cả hai? Tôi muốn một bản cập nhật, giả hoàn chỉnh, bao gồm hầu hết những lo lắng chung. Sao chép các tập tin Spotlight sẽ dễ dàng và nhanh hơn so với việc để chúng được tạo ra? Làm cách nào tôi có thể dừng Spotlight để nó không gây rối trong khi đó? Điều gì về caffeinateing quá trình? Hoặc có thể là nếu nó chỉ là một danh sách dự phòng làm cho nó không thể lập chỉ mục bởi Spotlight, ít lo lắng hơn, v.v ... Nhiều câu hỏi này đã được trả lời chắc chắn.
Manuel

5

Nếu bạn đang sử dụng rsyncphiên bản 3.0.6 theo Cloner Carbon Copy hoặc 3.1.2 theo Homebrew, bạn có thể lấy một gợi ý từ các đối số của Carbon Copy 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-decmpfskhông còn khả dụng kể từ 3.1.3 nữa, xem github.com/Homebrew/homebrew-core/pull/23415 .
user74686

4

Tôi khuyên bạn không nên cắt xén dữ liệu meta trong quá trình sao lưu, đặc biệt là các tệp chấm, ví dụ: ._$filenametuy nhiên nếu bạn thực sự muốn loại trừ các tệp chấm khỏi rsynclệnh của bạn hãy thêm --exclude '.*'vào nó.

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

Điều này là tốt Tôi không chắc việc xóa tất cả các tệp chấm có vấn đề hay không (nhân tiện, có sự khác biệt nào giữa '.*''/.*'không?). Tôi không nghĩ Finder sao chép tất cả chúng, có thể chỉ là một số liên kết. Trong trường hợp đó, tôi chỉ muốn loại trừ những thứ không cần thiết (ví dụ .DS_Store:). Và vâng, những thứ đó có thể quan trọng, nhưng tôi không muốn có trong nhật ký của mình, tôi có thể lọc bằng các biểu thức thông thường.
Manuel

1
Bản sao của Finder là gì không có giấy tờ và đây là nguồn gốc của vấn đề của mọi người khi xây dựng chính sách sao lưu. Bạn nên duy trì một bản sao của tất cả các tệp nếu bạn muốn một bản sao lưu có thể được sử dụng chính xác thay cho Ađĩa.
dan

@danielAzuelos Không phải vậy, trong trường hợp ổ cứng chính A chết, sau đó tôi sẽ mua ổ cứng thứ ba C, sao chép từ ổ cứng B sang ổ cứng C và có thể bắt đầu sử dụng một trong B hoặc C. Tôi nói lại, rằng đây không phải là loại sao lưu mà người ta cần sử dụng như những gì SuperDuper làm. Chỉ là những bức ảnh của tôi tốt hơn ở hai nơi thay vì chỉ một.
Manuel

4

Tôi không hoàn toàn hài lòng với các câu trả lời hiện tại, nhưng tôi sẽ cố gắng đề cập ở đây một chút khả năng mà tôi đã thấy trên web khi cố gắng tìm một thiết lập đẹp rsync.

Và, nhân tiện, nếu một người quan tâm đến cỗ máy thời gian như các bản sao, thì có rsnapshot. Và cũng có Unison cho đồng bộ hóa hai chiều. Thêm vào đó, thực sự có một vài GUI, như Backup UtilityarRsync ; không chính xác những gì tôi đang tìm kiếm nhưng họ có thể làm việc cho ai đó.

Đầu tiên, ý định duy nhất của tôi là sao chép ảnh và video, vì vậy không cần sao chép chính xác, do đó không cần phải quan tâm quá nhiều . Trong thực tế, hầu hết các nghi ngờ của tôi là nếu tôi có thể loại trừ tất cả mọi thứ (điều tương tự sẽ xảy ra nếu, giả sử, tôi đã tải xuống một bức ảnh từ internet, tôi chỉ tải xuống một .png, mọi thứ khác không được tải xuống nhưng được tự động hóa ).

Đây là danh sách những suy nghĩ không có cấu trúc mà bạn có thể muốn tính đến

  • Tôi muốn đảm bảo rằng máy tính xách tay của bạn không đi ngủ, bạn có thể muốn caffeinatexử lý caffeinate -s rsync -av .... Lấy từ đây .

  • Nếu bạn đang thực hiện các bản sao cục bộ, như trong trường hợp của tôi, hoặc ngay cả khi kết nối internet không quá chậm, bạn không nên sử dụng -ztùy chọn (nén) và sử dụng -W(chuyển toàn bộ tệp, thay vì chuyển delta; đây là mặc định khi cục bộ) và có thể sử dụng --inplaceđể thực hiện chuyển khoản nhanh chóng. Lấy từ đây .

  • Bạn có thể sử dụng --delete-afterđể bất kỳ tệp nào sẽ được chuyển trước, sau đó được di chuyển đến đích (và xóa tệp gốc) và an toàn hơn là xóa trước khi chuyển hoặc trong quá trình chuyển.

  • Bạn có thể dừng chuyển bằng cách nhấn ctrl + Cvà nó sẽ dừng sạch. Lấy từ đây . Đây là một trong những nỗi sợ của tôi với SuperDuper!, Nếu bạn cần dừng chuyển khoản, bạn sẽ nhận được tin nhắn Bạn sẽ rời khỏi ổ cứng trong một trạng thái không xác định.

  • Trong các phiên bản gần đây, có --info=progress2thêm chi tiết -v.

  • -P(bằng --partial--progress) sẽ để các tệp được chuyển ở giữa để bạn có thể tiếp tục khi bạn khởi động lại quá trình (nếu vì lý do nào đó bạn không thể kết thúc quá trình đồng bộ hóa cùng một lúc).

  • Người ta có thể quan tâm đến việc dừng Spotlight hoặc TimeMachine trước khi thực hiện sao chép và kích hoạt chúng sau khi chuyển. Và thậm chí vô hiệu hóa Spotlight cho đĩa bên ngoài.

  • Các tùy chọn khác được sử dụng trong tất cả những tài liệu tham khảo bao gồm -x(hoặc --one-file-system), -E( --executability), -H( --hard-links), -X( --xattrs), -A( --acls), và --sparse, --hfs-compression, --protect-decmpfs. Bạn có thể muốn nhìn vào chúng.

Đối với tôi, một lệnh cơ bản trông giống như (tôi có thể sử dụng nhiều tùy chọn hơn, nhưng điều này là đủ cho một ví dụ):

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

Bây giờ trong trường hợp của tôi, tôi chỉ có thể bao gồm {*.jpg,*.png,*.mp4,*.txt,*.pdf,…}và không ai có thể nói rằng bạn cũng cần các tệp hệ thống, nhưng vì tôi không muốn tìm kiếm để có được tất cả các loại tệp có thể có, tôi muốn loại trừ. Và có những thứ không chỉ có thể mà còn có vẻ thuận tiện để loại trừ.

Tôi tìm thấy một vài liên kết, lấy những gì bạn muốn:

  1. https://bombich.com/kb/ccc4/some-files-and- Folders-are-automatically-exceeded-from-back-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-hackffy.html

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

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

Và từ đó bạn có thể có được những gì an toàn hoặc lành mạnh để bỏ qua. Đây là danh sách đầy đủ (tôi vừa loại bỏ trùng lặp)

.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

Tôi đã sử dụng rsync để sao lưu tại một số công việc và tôi sử dụng nó ở nhà.

Tôi đánh giá cao nó, nhưng với một số sửa đổi. Là một công cụ sao lưu, thật tuyệt vời, nhưng là một công cụ lưu trữ, nó rơi xuống một chút bằng phẳng. Có, nó sao chép mọi thứ, nhưng bạn không nhận được phiên bản của mọi thứ, bạn luôn chỉ có phiên bản mới nhất.

Tôi đã sử dụng hướng dẫn này http://www.mikerubel.org/computers/rsync_snapshots/ làm điểm xuất phát. Đọc toàn bộ trang. Nó thực hiện một công việc tuyệt vời là giải thích các tùy chọn và phác thảo cách bạn có thể thực hiện sao lưu gia tăng. Và thật đáng kinh ngạc, bài viết đã hơn 10 năm tuổi nhưng vẫn được áp dụng cho đến ngày nay. Phải yêu unix.


1
Cảm ơn. Trong mọi trường hợp, tôi muốn đề cập đến những cân nhắc đặc biệt mà người ta có thể muốn thực hiện theo Mac OS X. Tôi không thực sự muốn chỉ là một hướng dẫn rsync. Trong mọi trường hợp, liên kết tốt, nó bao gồm rất nhiều rsyncnhưng ngày nay có một công cụ để thực hiện chính xác điều đó : rsnapshot.
Manuel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.