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