Sử dụng Rsync để sao lưu vào ổ đĩa ngoài


17

Tôi đang mua một ổ cứng ngoài để sao lưu máy tính trong nhà (cuối cùng !!). Tôi hy vọng sẽ sử dụng rsync. Tôi đã thấy một ví dụ thực hiện (hoặc dường như làm) chính xác những gì tôi muốn. Một cái gì đó như thế này:

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

Tuy nhiên, khi xem tài liệu và ví dụ rsync, v.v., mọi thứ bắt đầu trông RẤT NHIỀU hơn thế. Mạng và daemon và biệt ngữ, oh my!

Tôi cho rằng không có thứ gì trong số đó là cần thiết miễn là tôi chỉ kết nối từ máy tính với ổ đĩa ngoài được kết nối với dây lửa. Tôi đã sai khi cho rằng? Có phải mọi thứ thực sự sẽ phức tạp hơn mệnh lệnh vô thưởng vô phạt đó?


Câu trả lời:


10

Rsync hoạt động tốt trên các ổ đĩa cục bộ. Tuy nhiên, nếu nó phát hiện các đường dẫn cục bộ, nó sẽ tự động chuyển sang chế độ --whole-file không sao chép các khác biệt, mà chỉ sao chép tệp nguồn qua tệp đích. Mặc dù vậy, Syncync vẫn sẽ bỏ qua các tệp không thay đổi. Khi băng thông giữa nguồn và đích cao (như hai đĩa cục bộ), điều này nhanh hơn nhiều so với việc đọc cả hai tệp, sau đó sao chép chỉ các bit đã thay đổi.


2
s / Tuy nhiên / May mắn thay / khi các tệp là cục bộ, đọc cả hai và thực hiện tất cả các phép thuật khác nhau để viết mới với các phần của cả hai (đọc lại chúng) sẽ hiệu quả hơn rất nhiều so với chỉ đọc nguồn, viết đích.
Javier

tôi không biết liệu tôi có nên nói về câu trả lời đó không. Tôi sẽ thêm nó ngay bây giờ.
kbyrd

31

Tôi sử dụng rsync với các cờ sau dễ nhớ như 'glop' và 'trunc' và 'v'.

rsync -gloptrunc $srcdir $dstdir

Hướng dẫn ngắn gọn:

  • g - giữ thông tin sở hữu nhóm
  • l - sao chép liên kết dưới dạng liên kết tượng trưng
  • o - giữ thông tin chủ sở hữu
  • p - bảo vệ quyền
  • t - giữ dấu thời gian
  • r - recurse thư mục thông qua
  • u - cập nhật, bỏ qua mọi tập tin mới hơn
  • [n] - không, không làm điều này, thay vào đó hãy chạy khô
  • c - checksum, thử tổng kiểm tra trên các khối tệp khi có thể (*)
    lưu ý: trên các hệ thống tệp cục bộ, điều này bị ghi đè và thay vào đó toàn bộ tệp được sao chép.
  • v - dài dòng

Tôi luôn luôn chạy ở trên để đảm bảo nó hoạt động, sau đó xóa cờ 'n' một khi tôi hài lòng với kết quả.

Các tính năng chính của các kết hợp trên:

  • Tôi chạy nó theo hướng HAI giữa hai (hoặc nhiều) máy chủ, do đó đồng bộ hóa theo hướng HAI. Bạn cập nhật bất cứ điều gì bạn cảm thấy là chủ vào thời điểm đó.
  • Nó cho phép hoặc là chủ, với sự cảnh báo quan trọng rằng nếu bạn muốn xóa một cái gì đó, bạn phải xóa nó trên cả hai để chắc chắn rằng nó thực sự biến mất, nếu không nó sẽ quay trở lại.

Tôi sử dụng điều này để giữ cho hai máy được đồng bộ hóa hoặc để giữ cho các thư mục con được đồng bộ hóa (như sao lưu vào ổ USB).

Như một trong những bài đăng khác đã nêu trước đó, 'tổng kiểm tra' thực sự có thể bị TẮT nếu bạn đang xử lý các ổ đĩa cục bộ.

Trong một số trường hợp hiếm hoi, tôi đã phải thêm các tham số bổ sung vào tài khoản để thay đổi tài khoản đăng nhập trên các máy từ xa, thay đổi cổng và thậm chí chỉ định nơi 'rsync' sống trên máy chủ từ xa ... nhưng chúng không thể áp dụng trực tiếp cho máy chủ của bạn câu hỏi


3
Không phải cờ -a để rsync làm tất cả những điều trên sao?
Rory

2
Tôi không phải là một fan hâm mộ lớn của việc sử dụng cờ 'meta' khi tôi không biết chắc chắn họ làm gì. Bản thảo cho rsync chỉ ra rằng '-a' thực sự là -rlptgoD trên hộp của tôi, bỏ qua 'u' và 'v' nhưng bao gồm 'D'. trong số đó, dường như, đối với tôi, việc thêm 'u' là sự khác biệt chính duy nhất.
ericslaw

Làm cách nào để buộc nó phản chiếu từ nguồn tới đích (xóa bất cứ thứ gì ở đích không có trong nguồn), thay vì sao chép hai chiều?
Gabriel Staples

1
Có vẻ như bạn cần sử dụng rsync -gloptrunc --delete --delete-excluded $srcdir $dstdir. Các --deletenói để xóa bất cứ điều gì trong cái đích mà không có trong các nguồn, và --delete-excludednói với cũng xóa các tập tin bị loại trừ trong những điểm đến mà sẽ thường không được theo dõi hoặc sao chép. Nếu bạn sử dụng --delete-excluded, về mặt kỹ thuật bạn cũng không cần sử dụng --delete, nhưng dù sao cũng nên sử dụng cả hai. Chi tiết có trong các trang hướng dẫn tại đây: linux.die.net/man/1/rsync .
Gabriel Staples

Lưu ý: đối với việc sử dụng rsync chung, hiện tại tôi cũng đã viết hướng dẫn này, vì vậy tôi có thể tham khảo nó khi cần: Cách sử dụng rsync
Gabriel Staples

4

Không cần thiết, bạn có thể sử dụng rsync mà không cần bất kỳ trình nền hoặc bất kỳ loại cấu hình nào khác CHỈ LÀ!

Chỉ cần sử dụng lệnh rsync và bạn đã đi tốt.


2

Đánh giá theo đường dẫn trong lệnh rsync của bạn, tôi có đúng không khi nghĩ rằng bạn đang sử dụng Mac OS X?

Cá nhân, tôi chọn sử dụng Time Machine (nếu bạn đang sử dụng Leopard) hoặc Cloner Carbon Copy ( http://www.bombich.com/software/ccc.html ) sử dụng rsync.

Dễ dàng hơn nhiều so với cố gắng để đúng kịch bản của riêng bạn. Một lợi thế là Time Machine và CCC sẽ cung cấp cho bạn các bản sao lưu gia tăng.


2

Ví dụ bạn đã sử dụng có vẻ như nó sẽ hoạt động tốt để sao lưu.

Tuy nhiên, một điều bạn có thể muốn xem xét khi sử dụng rsync là sử dụng tùy chọn --link-Dest. Điều này cho phép bạn giữ nhiều bản sao lưu, nhưng sử dụng các liên kết cứng cho bất kỳ tệp không thay đổi nào, làm cho tất cả các bản sao lưu đều chiếm không gian gia tăng. Một ví dụ sử dụng sẽ là:

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

Điều này giả sử bạn có một bản sao lưu ngày vào ngày 12 tháng 6 và bạn muốn tạo một bản sao mới vào ngày 13 tháng 6. Bạn có thể muốn bỏ qua tùy chọn -v nếu bạn không muốn bản in của mọi tệp.


1
rsnapshot là một hệ thống sao lưu sử dụng link-Dest như bạn mô tả để giữ các bản sao lưu phiên bản đầy đủ theo cách hiệu quả.
Rory

1

Nó thực sự phụ thuộc vào việc bạn đang chạy cơ sở dữ liệu hay không. Rsync sẽ lấy một ảnh chụp nhanh của mọi tệp và bỏ qua mọi thao tác ghi. Nếu bạn muốn sao lưu cơ sở dữ liệu, bạn nên xem xét việc thiết lập bộ lọc bỏ qua và chạy các công cụ kết xuất DB trước rsync.


1

Lệnh của bạn dưới dạng văn bản sẽ hoạt động, tuy nhiên bạn có thể muốn xem một chương trình có tên rsnapshot được xây dựng trên đầu rsync và giữ nhiều phiên bản của tệp để bạn có thể quay lại và xem xét mọi thứ như tuần trước hoặc tháng trước. Cấu hình khá dễ dàng và nó thực sự tốt trong việc tối ưu hóa không gian, vì vậy trừ khi bạn có nhiều máy khuấy, nó không chiếm nhiều không gian hơn sau đó chỉ là một bản sao lưu.


1

Bạn đã không đề cập đến hệ điều hành của bạn. Theo giả định rằng hệ điều hành dựa trên * nix của nó, lệnh của bạn là tốt.

Tuy nhiên, nếu một hoặc cả hai ổ đĩa được định dạng NTFS, được truy cập từ * nix hoặc thậm chí từ trong Windows bằng Mobaxterm / cygwin, thì chức năng gia tăng rsync sẽ không hoạt động tốt với rsync -a (archive flag)

Nếu (các) ổ đĩa NTFS có / có liên quan, bạn có thể sử dụng:

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

Tải xuống ứng dụng khách Mobaxterm ssh để có chức năng rsync trên Windows.

Dưới đây là thông tin thêm về việc sử dụng rsync với ổ đĩa NTFS


0

Tôi đã thử sử dụng rsync để sao lưu nhưng cuối cùng nó vẫn là một mớ hỗn độn. rsync phù hợp hơn với 'đồng bộ hóa' hơn là sao lưu. Và nó đi mãi mãi để so sánh các tập tin lớn.

Tôi đã nghiên cứu một chút và thử một vài cái (về cơ bản kiểm tra tất cả mọi người từ bản sao lưu tìm kiếm apt-cache trong ubfox).

Cuối cùng tôi đã kết thúc với ' backup2l - công cụ sao lưu / khôi phục bảo trì thấp', thật dễ dàng. Tôi thích cách nó quản lý lập kế hoạch và luân chuyển (theo cấp độ). Tôi chạy nó bất cứ khi nào tôi có ổ đĩa ngoài USB được gắn từ dòng lệnh nhưng bạn cũng có thể tự động hóa nó.


0

Hãy thử dirvish để làm bản sao lưu. http://www.dirvish.org/
Nó sử dụng các liên kết cứng từ rsync trong cái gọi là kho tiền. Bạn có thể giữ bao nhiêu ổ cũ của mình như đĩa USB có thể lấy. Hoặc thiết lập nó một cách tự động.

Một khi bạn hiểu ý tưởng của dirvish, nó sẽ dễ sử dụng hơn rsync với tất cả các tùy chọn của anh ấy.


rsnapshot không tương tự như dirvish
Rory

0

Tôi tìm một giải pháp cho máy tính chạy Windows: http://www.itefix.no/i2/node/10650

Để sao chép phân vùng D: \ sang ổ đĩa ngoài K: \

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

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.