Đồng bộ dữ liệu bằng Rsync thông qua SSH


Các bạn sử dụng command nào để gửi dữ liệu? Trong bài viết trước của mình – Cách copy file giữa 2 server Linux sử dụng command. Mình có nhắc đến 1 công cụ là rsync nhưng thời điểm đó mình ít có thời gian để sử dụng nó. Sau 1 thời gian mình thấy rsync thực sự là 1 giải pháp đồng bộ tốt nhất giữa các server với nhau hoặc từ local tới server. Trong bài viết này mình sẽ giới thiệu và hướng dẫn các bạn sử dụng rsync một cách đơn giản nhất.

Rsync là gì?

Rsync viết tắt của “Remote Sync.”  là công cụ command line được sử dụng để đồng bộ dữ liệu giữa các máy tính với nhau thông qua kết nối bảo mật SSH. Rsync có nhiều ưu điểm với cả nén và giải nén dữ liệu khi đồng bộ giúp bạn tiết kiệm thời gian cũng như chi phí băng thông.

Cài đặt Rsync trên Linux

Thông thường Rsync đã được cài đặt sẵn trong các phiên bản Linux, tuy nhiên vì có 1 lý do nào đó mà máy bạn chưa được cài đặt thì bạn có thể cài bằng command sau:

Với Ubuntu / Debian / LinuxMint

sudo apt -y install rsync

Với CentOS / RHEL / Fedora

sudo yum -y install rsync

Hướng dẫn sử dụng Rsync để đồng bộ dữ liệu

1. Cú pháp lệnh

# copy file/folder từ server hiện tại tới 1 remote server
rsync [-options] <source_path> <your_user>@<destination_server>:<destination_path>

# Copy file/folder từ 1 remote Server tới server hiện tại
rsync [-options] <your_user>@<source_server>:<source_path> <destination_path>

2. Đồng bộ  file

đồng bộ file từ local to remote server

rsync -av test.txt [email protected]:/tmp

đồng bộ ngược file từ remote server về local

rsync -av [email protected]:/tmp/test.txt /home/vinasupport/database

Với tham số:

  • -v để hiển thị nhiều thông tin khi di chuyển file
  • -a là bật Archive Mode

3. Đồng bộ folder

rsync -aP ~/Desktop/test [email protected]:~/Desktop/test/

Tham số -P để hiển thị process thực hiện

Trường hợp port ssh của remote server không phải là port mặc định thì ta sử dụng tham số -e để thay đổi port

rsync -aP -e 'ssh -p 2222' ~/Desktop/test [email protected]:~/Desktop/test/

Trường hợp sử dụng xác thực thông qua SSH Keys. Chúng ta sửa dụng như sau:

rsync -aP -e 'ssh -i $HOME/.ssh/somekey' ~/Desktop/test [email protected]:~/Desktop/test/

Trường hợp bạn muốn loại bỏ file và thư mục đồng bộ chúng ta sử dụng tham số –exclude

rsync -aP -e 'ssh -i $HOME/.ssh/somekey' --exclude=uploads/ ~/Desktop/test [email protected]:~/Desktop/test/

Một số tham số hữu ích:

  • -e “ssh -o StrictHostKeyChecking=no” : Chấp nhận remote ở lần đầu tiên.

Với Rsync chúng ta có thêm 1 giải pháp tốt cho việc đồng bộ dữ liệu trên môi trường Linux

Nguồn: vinasupport.com

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web