Dù là quản trị viên hay người dùng thông thường, rất có thể bạn cần tạo bản sao lưu thường xuyên cho các tệp của mình hoặc đồng bộ hóa chúng giữa một số hệ thống. Nếu tác vụ này mỗi lần yêu cầu ghi đè tất cả các file thì sẽ rất tốn thời gian và mệt mỏi cho bạn; Đây là lúc công cụ Linux Rsync tới máy chủ từ xa giải cứu bạn. Hướng dẫn này sẽ giúp bạn làm quen với các lệnh Rsync hữu ích nhất, cho phép bạn sử dụng các tính năng nhanh chóng và an toàn của nó.
Tiện ích Rsync là gì?
Đồng bộ hóa từ xa (Rsync) là một lệnh Linux/Unix nổi tiếng mà bạn có thể sử dụng để sao chép và đồng bộ hóa các tệp và thư mục thông qua truy cập từ xa hoặc cục bộ. Sử dụng lệnh Rsync cho phép bạn thực hiện nhiều tác vụ liên quan đến dữ liệu khác nhau, chẳng hạn như đồng bộ hóa, sao chép và nhận bản sao lưu. Ngoài ra, bạn có thể phản chiếu hệ thống Linux của mình sang hệ thống khác.
Ý tưởng chính đằng sau việc sử dụng Rsync tới máy chủ từ xa là tận dụng khả năng truyền tệp nhanh chóng của nó; để chuyển đổi dữ liệu giữa hai nguồn, nó chỉ xem xét sự khác biệt giữa chúng. Nói cách khác, sử dụng lệnh Rsync sẽ giúp bạn tránh mất thời gian cho việc truyền dữ liệu mù quáng vì nó chỉ xem xét sự khác biệt giữa hai hệ thống Linux.
Tại sao nên sử dụng Rsync?
Như bạn có thể đã biết, có nhiều công cụ sao lưu khác nhau để bạn sử dụng. Câu hỏi đặt ra là điều gì khiến công cụ Rsync trở nên độc đáo khi so sánh với các tiện ích hoặc lệnh khác?
Ví dụ, bạn có thể sử dụng Giao thức truyền tệp (FTP) để có một bản sao cục bộ của trang web của bạn hoặc SCP (Giao thức sao chép an toàn) cho nhiệm vụ này. Tuy nhiên, cả hai đều có nhược điểm. FTP không bao gồm mã hóa dữ liệu, điều mà chúng tôi không mong đợi và mặc dù SCP không gặp phải vấn đề truyền không được mã hóa như FTP, nhưng việc truyền vẫn mất nhiều thời gian hơn vì nó tạo ra một đường hầm để thực hiện việc đó.
Do đó, như một giải pháp thay thế cho những vấn đề này, chúng ta có thể sử dụng Rsync đến máy chủ từ xa bằng mã hóa dựa trên khóa (gọi đơn giản là Rsync SSH hoặc Rsync qua SSH) để ngăn việc gửi dữ liệu trùng lặp và sử dụng khóa SSH. Bạn cũng nên lưu ý rằng Rsync sử dụng tính năng nén và giải nén để nhận và gửi dữ liệu, dẫn đến việc sử dụng ít băng thông hơn.
Làm cách nào để cài đặt Rsync?
Có thể bạn đã cài đặt Rsync trên hệ thống của mình; Tuy nhiên, hãy đi vào chi tiết. Trước khi làm như vậy, vui lòng lưu ý rằng SSH phải được cài đặt sẵn trong cả hệ thống nguồn và đích vì chúng tôi muốn sử dụng Rsync qua SSH.
Bước 1: Kiểm tra phiên bản SSH
Bạn có thể kiểm tra phiên bản SSH bằng lệnh sau:
ssh -V
Để Rsync với máy chủ từ xa, bạn sẽ cần phải có máy chủ cục bộ, còn gọi là nguồn và máy chủ từ xa. Bạn cũng nên đảm bảo rằng máy chủ cục bộ có đặc quyền quản trị (sudo).
Bước 2: Cài đặt Rsync Linux
Lệnh sau sẽ cho phép bạn cài đặt Rsync trên Ubuntu, Linux Mint và Debian:
sudo apt install rsync -y
Nếu bạn đang sử dụng các bản phân phối Linux khác, như Fedora, CentOS, AlmaLinux và Red Hat, hãy nhập lệnh sau để cài đặt Rsync cho dịch vụ máy chủ từ xa trên hệ thống của bạn:
sudo dnf install rsync
Lưu ý: apt là một công cụ cài đặt gói hữu ích được sử dụng trong các bản phân phối dựa trên Debian.
Bước 3: Bắt đầu Rsync
Bây giờ bạn cần khởi động và sau đó kích hoạt Rsync để bắt đầu sử dụng nó thông qua các lệnh sau:
sudo systemctl start rsync
sudo systemctl enable rsync
Bước 4: Xác minh cài đặt Rsync
Nhập lệnh sau để đảm bảo bạn đã cài đặt Rsync đúng cách và kiểm tra xem bạn đang sử dụng phiên bản nào trên hệ thống Linux của mình:
rsync --version
Trong phần sau, chúng tôi sẽ thảo luận cách sử dụng khả năng của công cụ này để tạo bản sao lưu thông qua xác thực dựa trên khóa.
Làm cách nào để tạo bản sao lưu bằng Rsync qua SSH?
Tạo bản sao lưu gia tăng là một trong những trường hợp sử dụng Rsync qua SSH. Hãy chú ý đến lệnh sau để hiểu cách thức hoạt động của nó:
rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir
Chạy lệnh trên sẽ giúp bạn đồng bộ nguồnDir Và đíchDir. Lệnh này bao gồm các tùy chọn khác mà bạn nên làm quen, như -a (kho lưu trữ) Và -v (dài dòng). Lưu ý rằng -e ssh tùy chọn yêu cầu kết nối Rsync qua giao thức SSH.
Nếu bạn muốn Kết nối SSH để được chấp nhận qua một cổng khác với cổng mặc định (cổng 22), bạn cần đề cập đến số cổng sau -e sss. Nhìn vào lệnh sau để hiểu nó hoạt động như thế nào.
rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir
Trong lệnh trên, chúng tôi giả sử chúng tôi muốn sử dụng 1998 làm cổng SSH thay vì 22.
Rsync tới máy chủ từ xa qua SSH có các tùy chọn khác có thể khá hữu ích. Ví dụ, sử dụng –một phần tùy chọn cho phép bạn tiếp tục chuyển một phần trước đó trong trường hợp xảy ra sự cố như gián đoạn Rsync. Bạn cũng có thể biết tiến trình truyền tập tin hiện tại thông qua -tiến triển lựa chọn. Ngoài ra, tiện ích Linux Rsync to remote server cho phép bạn sử dụng đồng thời hai tính năng này. Để làm như vậy, bạn có thể sử dụng -p cờ trong dòng lệnh.
rsync -avP -e ssh /sourceDir/ user@remote:/path/to/destinationDir
Rsync đến máy chủ từ xa bằng lệnh chính cho phép bạn nén dữ liệu trước khi chuyển đến đích. Mặc dù nó sẽ sử dụng CPU của bạn để hoàn thành quá trình nén nhưng nó vẫn khá hữu ích vì nó giúp truyền tệp nhanh hơn và yêu cầu sử dụng ít băng thông hơn.
Bạn có thể sử dụng lệnh Rsync để sao chép tệp và thư mục, từ xa hoặc cục bộ. Ưu điểm chính của Rsync là nó dựa trên thuật toán chuyển delta, ngăn việc sao chép dữ liệu trùng lặp từ nguồn tới đích. Như đã đề cập trước đó, tính năng này của tiện ích Rsync tới máy chủ từ xa sẽ giúp bạn nếu bạn muốn xử lý các bản sao lưu hàng ngày và phản chiếu hệ thống. Với suy nghĩ này, hãy sử dụng lệnh Rsync cho các trường hợp sử dụng cục bộ.
Làm cách nào để sử dụng Rsync để đồng bộ hóa cục bộ?
Trước khi chúng ta đi sâu vào đồng bộ hóa cục bộ và cách sử dụng lệnh Rsync cho nó, bạn nên biết cấu trúc chung của Rsync cục bộ, được hiển thị bên dưới:
rsync [options] [Source] [Destination]
Sao chép tập tin cục bộ
Giả sử chúng ta muốn đồng bộ hoặc sao chép một tập tin từ thư mục trên màn hình (được gọi là Cloudzy) ĐẾN /nhà/Công cộng thư mục; đây là những gì bạn cần phải nhập:
rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public
Lệnh Rsync ở trên bao gồm ba tùy chọn như -zvh; bằng cách sử dụng -z, bạn sẽ nén tập tin của mình trong quá trình chuyển. tùy chọn v là viết tắt của đầu ra dài dòng, và tùy chọn h là thứ giúp chúng ta có thể đọc kết quả đầu ra như con người, hay còn gọi là hiển thị kết quả đầu ra mà con người có thể đọc được.
Sao chép thư mục cục bộ
Nếu chúng ta muốn sao chép thư mục máy tính để bàn (được gọi là Cloudzy) ĐẾN /nhà/Công cộng thư mục; bạn cần gõ lệnh dưới đây:
rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public
các -a tùy chọn trong lệnh này lưu trữ các thư mục và tập tin trong khi đồng bộ hóa.
Bạn có thể nhanh chóng kiểm tra danh sách thư mục của thư mục đích để xác minh xem thư mục đó đã được sao chép hay chưa. Để làm như vậy, hãy sử dụng lệnh sau:
ls -ld /home/Public
Đồng bộ hóa tệp và thư mục theo cách đệ quy và cục bộ (Rsync đệ quy)
Điều gì sẽ xảy ra nếu có một số thư mục và tập tin trong /máy tính để bàn/Có mâyvà bạn muốn sao chép chúng một cách đệ quy thông qua lệnh Linux Rsync?
Trong trường hợp này, bạn sử dụng tùy chọn -r để đồng bộ đệ quy các tập tin và thư mục cục bộ của bạn. Bạn cũng có thể sử dụng tùy chọn lưu trữ (-a) vì nó có các trường hợp sử dụng khác như sao chép đệ quy. Vui lòng xem lệnh sau để làm quen với các lệnh đệ quy Rsync.
rsync -zrvh /desktop/Cloudzy /home/Public
Or
rsync -zrvh /desktop/Cloudzy /home/Public
Sao chép thư mục và tập tin từ hệ thống cục bộ sang từ xa
Ngoài các đặc điểm của Linux Rsync đến máy chủ từ xa mà chúng tôi đã đề cập trong các phần trước, lệnh nổi tiếng này còn cho phép đồng bộ hóa các tệp và thư mục từ máy cục bộ sang hệ thống từ xa.
Giả sử chúng ta muốn sao chép một thư mục (/desktop/Cloudzy/thư mục mới) từ máy cục bộ đến hệ thống từ xa (với 192.168.1.79) dưới /mycpt; đây là một ví dụ cho thấy cách thức hoạt động của nó:
rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt
Làm cách nào để sao chép thư mục mà không có tệp của chúng bằng Rsync?
Trong một số trường hợp, chúng tôi có thể muốn sử dụng Linux Rsync cho các khả năng của máy chủ từ xa để sao chép các thư mục mà không cần tệp; quá trình đồng bộ hóa này có thể được thực hiện từ máy từ xa đến hệ thống cục bộ hoặc ngược lại.
Trong bài viết này, chúng tôi đã sử dụng hệ thống từ xa tại 192.168.1.79. Giả sử chúng ta có nó dưới /mycpt thư mục và muốn sao chép /máy tính để bàn/Có mây thư mục từ hệ thống cục bộ mà không bao gồm các tập tin của nó. Vui lòng nhập lệnh dưới đây để làm như vậy:
rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/
Các lệnh Rsync hữu ích khác
Ở đây chúng ta sẽ thảo luận về một số lệnh Rsync Linux bổ sung có thể hữu ích cho bạn.
Xác định kích thước tối đa để truyền tệp trong Rsync
Bạn có thể xác định kích thước giới hạn để truyền tệp bằng lệnh Rsync, lệnh này rất hữu ích khi bạn thường xuyên chạy Rsync đến máy chủ từ xa và máy cục bộ nơi băng thông và thời gian là những yếu tố cần thiết cần xem xét. Hãy chú ý đến lệnh sau để làm quen với cài đặt giới hạn kích thước khi truyền tệp Rsync:
rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public
Xác định kích thước tối thiểu để truyền tệp trong Rsync
Cũng giống như đặt kích thước tối đa để truyền tệp, bạn có thể xác định kích thước tối thiểu của tệp bạn muốn chuyển bằng Rsync sang công cụ máy chủ từ xa. Trong lệnh bên dưới, chúng tôi sẽ đặt kích thước tệp tối thiểu là 10k:
rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public
Xóa tệp khỏi nguồn sau khi hoàn tất đồng bộ hóa
Sau khi sử dụng xong lệnh Rsync, bạn có thể không cần có tệp trên hệ thống nguồn nữa. Trong trường hợp này, bạn có thể sử dụng lệnh Linux Rsync như bên dưới để xóa các tệp khỏi nguồn:
rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Đồng bộ hóa chạy khô
Nếu bạn chưa quen với tiện ích Rsync của Linux và chưa quen với các tùy chọn của nó, chạy khô là một cách thích hợp để đi. Khi bạn sử dụng tính năng chạy khô với Rsync, nó sẽ không thay đổi tệp nhưng nó hiển thị đầu ra của lệnh cho bạn. Sau khi chắc chắn rằng bạn muốn chạy lệnh, bạn có thể xóa –chạy khô tùy chọn từ nó và thực thi nó trên thiết bị đầu cuối. Hãy xem lệnh sau để biết thêm về chức năng chạy thử.
rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Tóm tắt: Sử dụng các lệnh Rsync của Linux
Bài viết này giải thích cách sử dụng các khả năng của Linux Rsync cho máy chủ từ xa (và Rsync cho máy chủ cục bộ) cho nhiều trường hợp sử dụng khác nhau, bao gồm phản ánh hệ thống, tạo bản sao lưu các tệp cũng như sao chép các tệp và thư mục cục bộ và từ xa bằng cách sử dụng một phương pháp hiệu quả. Lệnh Linux nổi tiếng này cho phép bạn hưởng lợi từ việc truyền tệp nhanh đồng thời cho phép bạn sử dụng SSH và nén dữ liệu.
Hãy sở hữu cho mình một VPS Linux cao cấp hoặc tiết kiệm để lưu trữ trang web hoặc máy tính từ xa của bạn với mức giá rẻ nhất hiện có. VPS Chạy trên Linux KVM để tăng hiệu quả và hoạt động trên phần cứng mạnh mẽ với bộ lưu trữ SSD NVMe để tăng tốc độ.
Đọc thêmBạn có thể tận dụng tối đa hệ điều hành này bằng cách tải xuống VPS Linux giải pháp từ Cloudzy, cho phép bạn hưởng lợi từ các gói lưu trữ dựa trên KVM. Chúng tôi tự hào cung cấp cho bạn các dịch vụ VPS hiệu suất cao với thời gian hoạt động 99,95%, độ ổn định, độ trễ tối thiểu, trung tâm dữ liệu trên toàn thế giới (12 địa điểm), bộ lưu trữ SSD cực nhanh và hỗ trợ kỹ thuật 24/7. Bạn có thể bắt đầu sử dụng VPS Linux của mình với giá 4,95 USD và mở rộng quy mô nếu muốn có giải pháp nâng cao hơn.
Câu hỏi thường gặp
Rsync sử dụng cổng TCP nào?
SSH thường sử dụng cổng 22 làm cổng mặc định. Do đó, khi sử dụng rsync qua SSH, nó sẽ hoạt động trên cổng cụ thể này. Mặt khác, khi sử dụng daemon Rsync, cổng 873 sẽ được sử dụng.
Rsync là gì?
Rsync là một tiện ích Linux có thể đồng bộ hóa các tệp và thư mục từ xa hoặc cục bộ. Sử dụng lệnh Rsync cho phép bạn thực hiện nhiều tác vụ liên quan đến dữ liệu khác nhau, chẳng hạn như đồng bộ hóa, sao chép và nhận bản sao lưu.