Rsync (Remote Sync) là gì?
Rsync (Remote Sync) là một công cụ dòng lệnh trên hệ điều hành Linux và Unix, được sử dụng để đồng bộ hóa và sao chép file hoặc thư mục giữa hai máy tính hoặc hai thư mục trên cùng một máy tính. Rsync sử dụng giao thức SSH để mã hóa dữ liệu và truyền tải qua mạng an toàn.
Rsync cung cấp nhiều tính năng như đồng bộ hóa dữ liệu giữa các máy chủ, sao chép dữ liệu với tốc độ nhanh và tiết kiệm băng thông, bảo vệ dữ liệu trên mạng bằng mã hóa SSH, sao lưu dữ liệu định kỳ, xử lý các file lớn, giữ nguyên thông tin về quyền truy cập và thời gian sửa đổi của các file, và nhiều tính năng khác.
Rsync được sử dụng rộng rãi trong quản lý hệ thống, sao lưu và khôi phục dữ liệu, và quản lý các trang web hoặc dịch vụ đám mây.
Ví dụ để đồng bộ hai thư mục bằng Rsync, bạn có thể sử dụng lệnh sau.
rsync -av --delete /path/to/source/folder/ /path/to/destination/folder/
Trong đó:
- “-a”: tùy chọn để đồng bộ hóa dữ liệu giữa hai thư mục theo kiểu archive mode, bao gồm cả tất cả các quyền sở hữu, phân quyền, thời gian và định dạng.
- “-v”: tùy chọn để hiển thị quá trình đồng bộ hóa trên terminal.
- “–delete”: tùy chọn để xóa các file hoặc thư mục trong thư mục đích nếu chúng không có trong thư mục nguồn.
Với lệnh trên, Rsync sẽ sao chép tất cả các file và thư mục trong thư mục nguồn vào thư mục đích, và xóa bất kỳ file hoặc thư mục nào không có trong thư mục nguồn. Bạn có thể thay đổi đường dẫn “/path/to/source/folder/” và “/path/to/destination/folder/” bằng đường dẫn tới hai thư mục mà bạn muốn đồng bộ hóa.
Ví dụ Để sử dụng Rsync để sao chép dữ liệu giữa hai server khác nhau, bạn có thể sử dụng lệnh sau.
rsync -avz --progress -e ssh /path/to/source user@remote_server:/path/to/destination
Rsync được sử dụng rộng rãi để đồng bộ hóa dữ liệu giữa hai máy tính hoặc hai máy chủ khác nhau. Để sử dụng Rsync để sao chép dữ liệu giữa hai server khác nhau, bạn có thể sử dụng lệnh sau:
rubyCopy codersync -avz --progress -e ssh /path/to/source user@remote_server:/path/to/destination
Trong đó:
- “-a”: tùy chọn để đồng bộ hóa dữ liệu giữa hai server theo kiểu archive mode, bao gồm cả tất cả các quyền sở hữu, phân quyền, thời gian và định dạng.
- “-v”: tùy chọn để hiển thị quá trình đồng bộ hóa trên terminal.
- “-z”: tùy chọn để nén dữ liệu trước khi truyền qua mạng để giảm thiểu lưu lượng băng thông.
- “–progress”: tùy chọn để hiển thị tiến trình trên terminal.
- “-e ssh”: tùy chọn để sử dụng giao thức SSH để mã hóa dữ liệu và truyền tải qua mạng an toàn.
- “/path/to/source”: đường dẫn tới thư mục nguồn trên máy tính hiện tại.
- “user@remote_server:/path/to/destination”: địa chỉ SSH của máy chủ đích và đường dẫn tới thư mục đích trên máy chủ đó.
Với lệnh trên, Rsync sẽ sao chép tất cả các file và thư mục từ máy tính hiện tại vào máy chủ đích thông qua kết nối SSH an toàn. Bạn có thể thay đổi đường dẫn “/path/to/source” và “user@remote_server:/path/to/destination” để đồng bộ hóa dữ liệu giữa các thư mục khác nhau trên hai server khác nhau.
Có nên sử dụng tuỳ chọn -delete
khi đồng bộ dữ liệu giữa 2 máy chủ khác nhau không?
Tùy thuộc vào mục đích sử dụng và đặc thù của dữ liệu, bạn có thể quyết định có sử dụng tùy chọn --delete
trong lệnh rsync hay không khi đồng bộ hóa dữ liệu giữa hai máy chủ khác nhau.
Tùy chọn --delete
trong lệnh rsync được sử dụng để đảm bảo rằng các file hoặc thư mục nằm ở máy đích sẽ được xóa nếu chúng đã bị xóa trên máy nguồn. Tuy nhiên, nếu bạn sử dụng tùy chọn này để đồng bộ hóa dữ liệu giữa hai máy chủ khác nhau, điều này có thể dẫn đến mất mát dữ liệu không mong muốn.
Vì vậy, khi đồng bộ hóa dữ liệu giữa hai máy chủ khác nhau, bạn nên cẩn thận và đảm bảo rằng tùy chọn --delete
chỉ được sử dụng khi bạn đã chắc chắn rằng các file và thư mục trên máy đích không bị xóa bất kỳ dữ liệu quan trọng nào. Trong trường hợp bạn không chắc chắn, bạn nên sao lưu dữ liệu trước khi thực hiện đồng bộ để đảm bảo an toàn cho dữ liệu của bạn.