
Nó có thể được sử dụng trên các hệ thống Windows nhưng chỉ có sẵn thông qua các cổng khác nhau (như Cygwin), vì vậy trong cách này chúng ta sẽ nói về việc thiết lập nó trên Linux. Trước tiên, chúng ta cần cài đặt / cập nhật ứng dụng rsync. Trên các bản phân phối Red Hat, lệnh này là “yum install rsync” và trên Debian, nó là “sudo apt-get install rsync.”


Sử dụng rsync để sao lưu cục bộ
Trong phần đầu của hướng dẫn này, chúng tôi sẽ sao lưu các tệp từ Directory1 đến Directory2. Cả hai thư mục này đều nằm trên cùng một ổ đĩa cứng, nhưng điều này sẽ hoạt động giống nhau nếu các thư mục tồn tại trên hai ổ đĩa khác nhau. Có một số cách khác nhau mà chúng tôi có thể tiếp cận điều này, tùy thuộc vào loại bản sao lưu bạn muốn định cấu hình. Đối với hầu hết các mục đích, dòng mã sau sẽ đủ:
$ rsync -av --delete /Directory1/ /Directory2/
Đoạn mã trên sẽ đồng bộ hóa nội dung của Directory1 đến Directory2, và không để lại sự khác biệt giữa hai. Nếu rsync thấy rằng Directory2 có một tệp mà Directory1 không, nó sẽ xóa nó. Nếu rsync tìm thấy một tệp đã được thay đổi, tạo hoặc xóa trong Directory1, nó sẽ phản ánh những thay đổi tương tự đối với Directory2.
Có rất nhiều thiết bị chuyển mạch khác nhau mà bạn có thể sử dụng cho rsync để cá nhân hóa nó theo nhu cầu cụ thể của bạn. Dưới đây là những gì mã nói trên nói với rsync để làm với các bản sao lưu:
1. -a = đệ quy (recurse vào thư mục), liên kết (sao chép symlink như symlink), perms (bảo tồn quyền), lần (bảo tồn sửa đổi lần), nhóm (bảo quản nhóm), chủ sở hữu (bảo quản chủ sở hữu), bảo quản các tập tin thiết bị, và giữ các tập tin đặc biệt. 2. -v = verbose. Lý do tôi nghĩ rằng tiết là quan trọng là vì vậy bạn có thể thấy chính xác những gì rsync đang sao lưu. Hãy suy nghĩ về điều này: Nếu ổ đĩa cứng của bạn bị hỏng và bắt đầu xóa các tệp mà bạn không biết, thì bạn chạy tập lệnh rsync và đẩy các thay đổi đó vào bản sao lưu của bạn, do đó xóa tất cả các phiên bản của tệp mà bạn không muốn nhận loại bỏ? 3. –elete = Điều này cho rsync xóa bất kỳ tệp nào nằm trong Directory2 không có trong Directory1. Nếu bạn chọn sử dụng tùy chọn này, tôi khuyên bạn cũng nên sử dụng các tùy chọn tiết, vì những lý do được đề cập ở trên.
Sử dụng tập lệnh ở trên, đây là kết quả được tạo bằng cách sử dụng rsync để sao lưu Directory1 đến Directory2. Lưu ý rằng nếu không có công tắc tiết, bạn sẽ không nhận được thông tin chi tiết như vậy.

Chúng tôi sẽ đi qua một vài công tắc tiện dụng hơn vào cuối hướng dẫn này, nhưng chỉ cần nhớ rằng để xem một danh sách đầy đủ, bạn có thể gõ "man rsync" và xem danh sách đầy đủ các công tắc để sử dụng.
Điều đó bao gồm nó như xa như sao lưu địa phương có liên quan. Như bạn có thể nói, rsync rất dễ sử dụng. Nó hơi phức tạp hơn khi sử dụng nó để đồng bộ dữ liệu với một máy chủ bên ngoài qua Internet, nhưng chúng tôi sẽ chỉ cho bạn một cách đơn giản, nhanh chóng và an toàn để thực hiện điều đó.
Sử dụng rsync để sao lưu bên ngoài
rsync có thể được cấu hình theo nhiều cách khác nhau để sao lưu bên ngoài, nhưng chúng tôi sẽ đi qua phương pháp thực tế nhất (cũng là dễ nhất và an toàn nhất) của rsync đường hầm thông qua SSH. Hầu hết các máy chủ và thậm chí nhiều máy khách đã có SSH, và nó có thể được sử dụng cho các bản sao lưu rsync của bạn. Chúng tôi sẽ chỉ cho bạn quá trình để có được một máy Linux để sao lưu khác trên một mạng cục bộ. Quá trình này sẽ giống hệt nhau nếu một máy chủ lưu trữ trên internet ở đâu đó, chỉ cần lưu ý rằng cổng 22 (hoặc bất kỳ cổng nào bạn đã định cấu hình SSH), sẽ cần được chuyển tiếp trên bất kỳ thiết bị mạng nào trên phía máy chủ.
Trên máy chủ (máy tính sẽ nhận các bản sao lưu), hãy đảm bảo đã cài đặt SSH và rsync.
# yum -y install ssh rsync
# sudo apt-get install ssh rsync
Ngoài việc cài đặt SSH và rsync trên máy chủ, tất cả những gì thực sự cần phải thực hiện là cài đặt các kho lưu trữ trên máy chủ nơi bạn muốn các tệp được sao lưu và đảm bảo rằng SSH bị khóa. Đảm bảo rằng người dùng bạn định sử dụng có mật khẩu phức tạp và cũng có thể là một ý tưởng hay khi chuyển cổng SSH lắng nghe (mặc định là 22).
Chúng ta sẽ chạy cùng lệnh mà chúng ta đã sử dụng rsync trên một máy tính cục bộ, nhưng bao gồm các bổ sung cần thiết cho rsync đường hầm thông qua SSH đến một máy chủ trên mạng cục bộ của tôi. Đối với người dùng “geek” kết nối với “192.168.235.137” và sử dụng các công tắc tương tự như trên (-av –delete), chúng tôi sẽ chạy như sau:
$ rsync -av –delete -e ssh /Directory1/ [email protected]:/Directory2/
Nếu bạn có SSH lắng nghe trên một số cổng khác với 22, bạn sẽ cần phải xác định số cổng, chẳng hạn như trong ví dụ này, nơi tôi sử dụng cổng 12345:
$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ [email protected]:/Directory2/

Tự động sao lưu rsync
Cron có thể được sử dụng trên Linux để tự động thực hiện các lệnh, chẳng hạn như rsync. Sử dụng Cron, chúng tôi có thể có hệ thống Linux của chúng tôi chạy bản sao lưu hàng đêm hoặc thường xuyên bạn muốn chúng chạy.
Để chỉnh sửa tệp bảng cron cho người dùng bạn đã đăng nhập, hãy chạy:
$ crontab -e
Bạn sẽ cần phải làm quen với vi để chỉnh sửa tệp này. Gõ “I” để chèn, sau đó bắt đầu chỉnh sửa tệp bảng cron.
Cron sử dụng cú pháp sau: phút của giờ, giờ trong ngày, ngày trong tháng, tháng của năm, ngày trong tuần, lệnh.
Nó có thể là một chút bối rối lúc đầu, vì vậy hãy để tôi cung cấp cho bạn một ví dụ. Lệnh sau sẽ chạy lệnh rsync mỗi tối lúc 10 giờ tối:
0 22 * * * rsync -av --delete /Directory1/ /Directory2/
"0" đầu tiên chỉ định phút của giờ và "22" chỉ định 10 giờ. Vì chúng ta muốn lệnh này chạy hàng ngày, chúng ta sẽ để phần còn lại của các trường có dấu hoa thị và sau đó dán lệnh rsync.
Sau khi bạn đã hoàn tất việc cấu hình Cron, nhấn thoát, sau đó gõ “: wq” (không có dấu ngoặc kép) và nhấn enter. Điều này sẽ lưu các thay đổi của bạn trong vi.
Cron có thể nhận được nhiều hơn chiều sâu hơn thế này, nhưng để đi về nó sẽ vượt ra ngoài phạm vi của hướng dẫn này. Hầu hết mọi người sẽ chỉ muốn một bản sao lưu hàng tuần hoặc hàng ngày đơn giản và những gì chúng tôi đã cho thấy bạn có thể dễ dàng thực hiện điều đó. Để biết thêm thông tin về Cron, vui lòng xem các trang hướng dẫn sử dụng.
Các tính năng hữu ích khác
Một điều hữu ích khác bạn có thể làm là đặt các bản sao lưu của bạn vào một tệp nén. Bạn sẽ cần phải xác định nơi bạn muốn tập tin zip được đặt, và sau đó rsync thư mục đó vào thư mục sao lưu của bạn. Ví dụ:
$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

Có một vài cách khác nhau để bạn có thể mã hóa các bản sao lưu rsync của mình. Phương pháp đơn giản nhất là cài đặt mã hóa trên chính ổ đĩa cứng (phương thức mà tệp của bạn đang được sao lưu). Một cách khác là mã hóa các tệp của bạn trước khi gửi chúng đến một máy chủ từ xa (hoặc ổ đĩa cứng khác, bất cứ điều gì bạn xảy ra để sao lưu). Chúng tôi sẽ đề cập đến các phương pháp này trong các bài viết sau.
Bất kể các tùy chọn và tính năng nào bạn chọn, rsync đã chứng minh là một trong những công cụ sao lưu hiệu quả và linh hoạt nhất cho tới nay, và thậm chí cả một tập lệnh rsync đơn giản cũng có thể giúp bạn không bị mất dữ liệu.