Android

Cách sử dụng rsync để truyền và đồng bộ hóa dữ liệu từ xa và cục bộ

Rsync - молниеносный деплой средних и крупных проектов (gulp-rsync)

Rsync - молниеносный деплой средних и крупных проектов (gulp-rsync)

Mục lục:

Anonim

Rsync là một tiện ích dòng lệnh nhanh và linh hoạt, đồng bộ hóa các tệp và thư mục giữa hai vị trí trên một vỏ từ xa hoặc từ / đến một daemon Rupync từ xa. Nó cung cấp chuyển tập tin gia tăng nhanh bằng cách chỉ chuyển những khác biệt giữa nguồn và đích.

Rsync có thể được sử dụng để phản chiếu dữ liệu, sao lưu gia tăng, sao chép tệp giữa các hệ thống và thay thế cho các lệnh scp , sftp cp để sử dụng hàng ngày.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng rsync thông qua các ví dụ thực tế và giải thích chi tiết về các tùy chọn rsync phổ biến nhất.

Cài đặt Rsync

Tiện ích rsync được cài đặt sẵn trên hầu hết các bản phân phối Linux và macOS. Bạn có thể kiểm tra nếu nó được cài đặt trên hệ thống của bạn bằng cách gõ:

rsync --version

rsync version 3.1.2 protocol version 31

Cài đặt Rsync trên Ubuntu và Debian

sudo apt install rsync

Cài đặt Rsync trên CentOS và Fedora

sudo yum install rsync

Cú pháp lệnh Rsync

Trước khi đi vào cách sử dụng lệnh rsync , hãy bắt đầu bằng cách xem lại cú pháp cơ bản.

Các biểu thức tiện ích rsync có dạng sau:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - Các tùy chọn rsync. SRC - Thư mục nguồn. DEST - Thư mục đích. USER - Tên người dùng từ xa. HOST - Tên máy chủ từ xa ot Địa chỉ IP.

rsync cung cấp một số tùy chọn kiểm soát mọi khía cạnh của hành vi của nó. 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 cho rsync đồng bộ hóa các thư mục theo cách đệ quy, chuyển các thiết bị đặc biệt và chặn, bảo toà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 sẽ 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 - một phần - --partial --progress . Khi tùy chọn này được sử dụng, rsync sẽ hiển thị thanh tiến trình trong khi truyền và để giữ các tệp được truyền một phần. Nó rất hữu ích khi chuyển các tệp lớn qua các kết nối mạng chậm hoặc không ổn định. --delete . Khi sử dụng tùy chọn này, 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 chặn các thông báo không lỗi. -e . Tùy chọn này cho phép bạn chọn một vỏ từ xa khác. Theo mặc định, rsync được cấu hình để sử dụng ssh.

Cách sử dụng đồng bộ cơ bản

Để sao chép một tệp từ một địa điểm khác, bạn sẽ chạy lệnh sau:

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í đích và viết quyền trên đích.

Bỏ tên tệp từ 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, chỉ định tên mới trên phần đích:

rsync -a /opt/filename.zip /tmp/newfilename.zip

Trong ví dụ dưới đây, chúng tôi đang tạo một bản sao lưu cục bộ của các tệp trang web của chúng tôi:

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, rsync sẽ tạo nó.

Điều đáng nói là rsync cung cấp cách xử lý khác nhau cho các thư mục nguồn với dấu gạch chéo / . Nếu bạn thêm một dấu gạch chéo vào thư mục nguồn, nó sẽ chỉ sao chép nội dung của thư mục vào thư mục đích. Khi dấu gạch chéo bị bỏ qua, rsync sẽ sao chép thư mục nguồn bên trong thư mục đích.

Cách sử dụng Rsync để đồng bộ hóa dữ liệu từ / đến một máy từ xa

Khi sử dụng rsync để truyền từ xa, nó phải được cài đặt trên cả nguồn và máy đích. Các phiên bản mới của rsync được cấu hình để sử dụng SSH làm vỏ 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/ Nếu bạn chưa đặt đăng nhập SSH không mật khẩu cho máy từ xa, bạn sẽ được yêu cầu nhập mật khẩu người dùng.

Nếu bạn muốn chuyển dữ liệu từ xa sang máy cục bộ thì bạn cần 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 22 mặc định thì bạn có thể chỉ định cổng bằng tùy chọn -e :

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Khi truyền một lượng lớn dữ liệu, nên chạy lệnh rsync bên trong phiên màn hình hoặc sử dụng tùy chọn -P :

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Không bao gồm các tập tin và thư mục

Khi loại trừ các tệp hoặc thư mục, bạn cần sử dụng các đường dẫn tương đối của chúng đến vị trí nguồn.

Có hai tùy chọn để loại trừ các tập tin và thư mục. Tùy chọn đầu tiên là sử dụng đối số --exclude và chỉ định các tệp và thư mục bạn muốn loại trừ trên dòng lệnh.

Trong ví dụ sau, chúng tôi đang loại trừ các tmp node_modules tmp được đặt bên trong src_directory :

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

Tùy chọn thứ hai là sử dụng đối số --exclude-from và chỉ định các tệp và thư mục bạn muốn loại trừ trong một tệp.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/ /exclude-file.txt

node_modules tmp

Phần kết luận

Trong hướng dẫn này, bạn đã học cách sử dụng Rsync để sao chép và đồng bộ hóa các tệp và thư mục. Có nhiều hơn nữa để tìm hiểu về Rupync tại trang Hướng dẫn sử dụng của Rsync.

Hãy để lại nhận xét nếu bạn có bất kỳ câu hỏi nào.

thiết bị đầu cuối rsync