rsync
là một tiện ích dòng lệnh linh hoạt và nhanh chóng để đồng bộ hóa các tệp và thư mục giữa hai vị trí qua một trình bao từ xa hoặc từ / đến một daemon Rsync từ xa. Nó cung cấp khả năng truyền tệp gia tăng nhanh chóng bằng cách chỉ chuyển những điểm khác biệt giữa nguồn và đích.
Rsync có thể được sử dụng để ánh xạ dữ liệu, backup, sao chép tập tin giữa các hệ thống, và như là một thay thế cho scp
, sftp
và cp
lệnh.
Bài viết này giải thích cách sử dụng rsyncthông qua các ví dụ thực tế và giải thích chi tiết về các rsynctùy chọn phổ biến nhất .
Các rsync
tiện ích được cài đặt sẵn trên hầu hết các bản Linux và MacOS. Nếu bạn chưa rsync
cài đặt trên hệ thống của mình, bạn có thể dễ dàng cài đặt nó.
sudo apt install rsync
sudo yum install rsync
Trước khi đi vào cách sử dụng rsync
lệnh, chúng ta hãy bắt đầu bằng cách xem lại cú pháp cơ bản.
Local to Local: rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
OPTION
- Các tùy chọn rsync .SRC
- Thư mục nguồn.DEST
- Danh mục nơi nhận.USER
- Tên người dùng từ xa.HOST
- Tên máy chủ hoặc Địa chỉ IP từ xa.rsync
cung cấp một số tùy chọn kiểm soát cách hoạt động của lệnh. Các tùy chọn được sử dụng rộng rãi nhất là:
-a
,, --archive
chế độ lưu trữ, tương đương với -rlptgoD
. Tùy chọn này yêu rsync
cầu đồng bộ hóa các thư mục một cách đệ quy, chuyển các thiết bị đặc biệt và khối, bảo tồn các liên kết tượng trưng, thời gian sửa đổi, nhóm, quyền sở hữu và quyền.-z
, --compress
. Tùy chọn này buộc rsync
nén dữ liệu khi nó được gửi đến máy đích. Chỉ sử dụng tùy chọn này nếu kết nối với máy từ xa chậm.-P
, tương đương với --partial --progress
. Khi tùy chọn này được sử dụng, rsync
sẽ hiển thị thanh tiến trình trong quá trình truyền và giữ các tệp đã chuyển một phần. Nó rất hữu ích khi chuyển các tệp lớn qua kết nối mạng chậm hoặc không ổn định.--delete
. Khi tùy chọn này được sử dụng, rsync
sẽ xóa các tệp không liên quan khỏi vị trí đích. Nó rất hữu ích cho việc phản chiếu.-q
, --quiet
. Sử dụng tùy chọn này nếu bạn muốn loại bỏ các thông báo không phải lỗi.-e
. Tùy chọn này cho phép bạn chọn một trình bao từ xa khác. Theo mặc định, rsync
được định cấu hình để sử dụng ssh.Trường hợp sử dụng cơ bản nhất rsync
là sao chép một tệp từ tệp này sang vị trí cục bộ khác. Đây là một ví dụ:
rsync -a /opt/filename.zip /tmp/
Người dùng đang chạy lệnh phải có quyền đọc trên vị trí nguồn và quyền ghi trên đích.
Bỏ qua tên tệp khỏi vị trí đích sẽ sao chép tệp với tên hiện tại. Nếu bạn muốn lưu tệp dưới một tên khác, hãy chỉ định tên mới trên phần đích:
rsync -a /opt/filename.zip /tmp/newfilename.zip
Sức mạnh thực sự rsync
đến khi đồng bộ hóa các thư mục. Ví dụ dưới đây cho thấy cách tạo bản sao lưu cục bộ của các tệp trang web:
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
Nếu thư mục đích không tồn tại, rsyncsẽ tạo nó.
Điều đáng nói là rsyncđưa ra cách xử lý khác nhau đối với các thư mục nguồn bằng một dấu gạch chéo ( /). Nếu thư mục nguồn có dấu gạch chéo, lệnh sẽ chỉ sao chép nội dung thư mục vào thư mục đích. Khi dấu gạch chéo được bỏ qua, hãy rsyncsao chép thư mục nguồn bên trong thư mục đích.
rsync
để đồng bộ hóa dữ liệu từ / đến một máy từ xaKhi sử dụng rsync
để truyền dữ liệu từ xa , nó phải được cài đặt trên cả máy nguồn và máy đích. Các phiên bản mới của rsync
được định cấu hình để sử dụng SSH làm trình bao từ xa mặc định.
Trong ví dụ sau, chúng tôi đang chuyển một thư mục từ một máy cục bộ sang một máy từ xa:
rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Để chuyển dữ liệu từ điều khiển từ xa sang máy cục bộ, hãy sử dụng vị trí từ xa làm nguồn:
rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Nếu SSH trên máy chủ từ xa đang nghe trên một cổng khác với cổng 22 mặc định, hãy chỉ định cổng bằng cách sử dụng -e
tùy chọn:
rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Khi chuyển một lượng lớn dữ liệu, bạn nên chạy rsync
lệnh bên trong phiên màn hình hoặc sử dụng -P
tùy chọn:
rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Có hai tùy chọn để loại trừ tệp và thư mục. Tùy chọn đầu tiên là sử dụng --exclude
đối số và chỉ định các tệp và thư mục bạn muốn loại trừ trên dòng lệnh.
rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/
Tin nổi bật Kiến thức quản trị