Đồng bộ dữ liệu bằng Rsync thông qua SSH
Bạn sử dụng lệnh nào để gửi dữ liệu? Trong bài trước của tôi – Cách sao chép File giữa 2 máy chủ Linux bằng lệnh. Tôi đã đề cập đến một công cụ có tên là rsync nhưng tại thời điểm đó tôi có rất ít thời gian để sử dụng nó. Sau một thời gian, tôi thấy rằng rsync thực sự là giải pháp đồng bộ hóa tốt nhất giữa các máy chủ hoặc từ cục bộ đến máy chủ. 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 là viết tắt của “Đồng bộ hóa từ xa”. là một công cụ dòng lệnh được sử dụng để đồng bộ hóa dữ liệu giữa các máy tính qua kết nối SSH an toàn. Rsync có nhiều ưu điểm vừa nén vừa giải nén dữ liệu đồng bộ giúp bạn tiết kiệm thời gian và 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, nhưng vì lý do nào đó mà máy của bạn chưa được cài đặt, bạn có thể cài đặt nó bằng lệnh 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ộ hóa 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ộ hóa File
đồng bộ hóa các File từ cục bộ đến máy chủ từ xa
rsync -av test.txt [email protected]:/tmp
đảo ngược đồng bộ hóa các File từ máy chủ từ xa đến cục bộ
rsync -av [email protected]:/tmp/test.txt /home/vinasupport/database
Với các thông số:
- -v để hiển thị thêm thông tin khi di chuyển File
- -a là bật Chế độ lưu trữ
3. Đồng bộ hóa các thư mục
rsync -aP ~/Desktop/test [email protected]:~/Desktop/test/
-P tham số để hiển thị quá trình thực thi
Trong trường hợp cổng ssh của máy chủ từ xa không phải là cổng mặc định, chúng tôi sử dụng tham số -e để thay đổi cổng
rsync -aP -e 'ssh -p 2222' ~/Desktop/test [email protected]:~/Desktop/test/
Trường hợp sử dụng xác thực Key SSH. Chúng tôi sử dụng những điều sau:
rsync -aP -e 'ssh -i $HOME/.ssh/somekey' ~/Desktop/test [email protected]:~/Desktop/test/
Trong trường hợp bạn muốn xóa các File và thư mục khỏi đồng bộ hóa, hãy sử dụng –exclude. tham số
rsync -aP -e 'ssh -i $HOME/.ssh/somekey' --exclude=uploads/ ~/Desktop/test [email protected]:~/Desktop/test/
Với Rsync chúng ta có thêm một giải pháp tốt để đồng bộ dữ liệu trên môi trường Linux
Nguồn: vinasupport.com