Cách sử dụng lệnh rsync trong Linux

Trong bài này mình sẽ hướng dẫn cài đặt và sử dụng lệnh rsyns trong Linux, đây là lệnh dùng để sao chép giữa liệu giữa các hệ thống, nói cách khác là nó dùng để đồng bộ dữ liệu giữa hai hệ thống.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

rsync là một công cụ command line rất linh hoạt, nó giúp đồng bộ các file và thư mục giữa hai máy tính hoặc hai vị trí trên một máy tính một cách nhanh chóng thông qua một remote shell. Điểm đặc biệt là nó sẽ so sánh hai file giữa hai hệ thống và chỉ đồng bộ những điểm khác nhau giúp việc truyền tải nhanh hơn.

1. Cài đặt Rsync package

Tiện ích rsync đã được cài đặt sẵn trên hầu hết các bản phân phối của Linux và macOS. Nếu trong máy của bạn không có thì hãy chạy lệnh sau để cài đặt từ kho lưu trữ:

Cài Rsync trên Ubuntu và Debian
sudo apt install rsync
Cài Rsync trên CentOS và Fedora
sudo yum install rsync

2. Cú pháp lệnh rsync trong Linux

Trước khi tìm hiểu cách sử dụng rsync command thì hãy xem qua cú pháp của nó trước nhé, nó sẽ có dạng như sau:

Bài viết này được đăng tại [free tuts .net]

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]

Trong đó:

  • OPTION là những tùy chọn, bạn có thể xem chi tiết hơn ở phần dưới.
  • SRC là thư mục nguồn.
  • DEST là thư mục đích.
  • USER là remote username.
  • HOST là remote host name hoặc địa chỉ IP

OPTIONS là những tùy chọn dùng để kiểm soát lệnh rsync, cụ thể như sau:

  • -a, --archive, chế độ lưu trữ, tương đương với -rlptgoD. Tùy chọn này yêu cầu rsync đồng bộ hóa các thư mục một cách đệ quy, transfer tất cả symbolic links, group, phân 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 đường truyền kết nối với máy từ xa không được tốt.
  • -P, --partial --progress. Khi tùy chọn này được sử dụng thì rsync sẽ hiển thị thanh tiến trình trong quá trình truyền dữ liệu. Nó rất hữu ích khi chuyển các tệp file 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 file không liên quan khỏi vị trí đích.
  • -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 lỗi.
  • -e. Tùy chọn này cho phép bạn chọn một kiểu remote khác. Theo mặc định, rsync được định cấu hình để remote qua ssh.

3. Cách sử dụng lệnh rsync trong Linux

Cách sử dụng cơ bản nhất là copy một file tự vị trí này sang vị trí khác trong cung một mạng cục bộ.

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

Lưu ý rằng tài khoản đang đăng nhập phải có quyền đọc trên file nguồn và ghi trên file đích.

Nếu bạn muốn đặt một cái tên khác khi copy thì sử dụng cú pháp sau:

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

Sức mạnh thực sự của rsync không phải là copy file như vậy, mà là sự đồng bộ dữ liệu giữa hai nơi.

Đoạn code dưới đây mình đã tạo một bản backup của website:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Khi chạy lệnh này thì tất cả những file có trong thư mục public_html sẽ có trong thư mục public_html_backup.

Trường hợp thư mục không tồn tai thì lệnh rsync sẽ tự động tạo.

4. Sử dụng lệnh rsync trong Linux để truyền dữ liệu từ xa

Khi sử dụng rsync để truyền dữ liệu từ xa thì 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 sẽ sử dụng SSH để remote.

Trong ví dụ sau minh đang chuyển một thư mục từ một máy cục bộ sang một máy từ xa thông qua ssh.

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 cần mật khẩu cho máy từ xa thì bạn sẽ được yêu cầu nhập mật khẩu.

Nếu bạn muốn chuyển ngược lại dữ liệu từ máy cục bộ sang máy từ xa thì hãy hoán đổi vị trí của chúng.

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

Nếu máy từ xa lắng nghê trên một port khác port 22 (port mặc định) thì hãy thiết lập cho nó bằng tùy chọn -e.

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 thì bạn nên chạy lệnh rsync kết hợptùy chọn -P.

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

5. Loại trừ file và thư mục ra khỏi lệnh rsync trong Linux

Có một số trường hợp bạn không muốn đồng bộ một số file và thư mục thì hãy sử dụng tùy chọn --exclude. Và bạn phải sử dụng đường dẫn tương đối đến vị trí nguồn nhé.

Như trong ví dụ dưới đây sẽ loại trừ thư mục node_modules và tmp.

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

Cách thứ hai là sử dụng tùy chọn --exclude-from để chỉ định đến một file chứa danh sách các thư mục bị loại bỏ.

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

Trong đó nội dung của file exclude-file.txt sẽ là:

node_modules
tmp

Như vậy là mình đã hướng dẫn xong cách sử dụng lệnh rsync trong Linux, đây là lệnh rất hữu ích dùng để sao lưu và đồng bộ dữ liệu giữa hai máy trên Linux.

Cùng chuyên mục:

Hướng dẫn cấu hình Mail Server trên CentOs 6.5

Hướng dẫn cấu hình Mail Server trên CentOs 6.5

Cách dùng lệnh Users trong Linux để xem user đang online

Cách dùng lệnh Users trong Linux để xem user đang online

Nếu bạn đang là quản trị viên thì việc quản lý thông tin / xem…

Cách sử dụng lệnh Wall trong Linux

Cách sử dụng lệnh Wall trong Linux

Wall là một công cụ dòng lệnh giúp hiển thị thông báo đến tất cả…

Cách dùng lệnh Whereis trong Linux

Cách dùng lệnh Whereis trong Linux

Whereis là một tiện ích dòng lệnh command line, nó cho phép bạn tìm ..

Cách sử dụng lệnh Which trong Linux

Cách sử dụng lệnh Which trong Linux

Linux dùng lệnh which để xác định vị trí file thực thi của lệnh mà…

Cách sử dụng lệnh whoami trong Linux

Cách sử dụng lệnh whoami trong Linux

Giống như tên gọi của nó, lệnh whoami in tên người dùng đang chạy ...

Cách dùng lệnh zcat trong Linux

Cách dùng lệnh zcat trong Linux

Mặc dù tính năng nén file rất hữu ích vì nó giúp ta tiết kiệm…

Hiểu rõ hơn về chmod 777 trong Linux

Hiểu rõ hơn về chmod 777 trong Linux

Bạn đang xây dựng một website và sử dụng tính năng upload ...

Cách sử dụng lệnh tail trong Linux

Cách sử dụng lệnh tail trong Linux

Mặc định thì lệnh tail sẽ hiển thị 10 dòng cuối cùng của file, thông…

Cách sử dụng lệnh Head trong Linux

Cách sử dụng lệnh Head trong Linux

Trong quá trình quản trị dữ liệu trên Linux đôi khi bạn muốn xem nhanh…

Cách sử dụng lệnh Whatis trong Linux

Cách sử dụng lệnh Whatis trong Linux

Trong bài này chúng ta sẽ tìm hiểu lệnh whatis trong ...

Cách sử dụng lệnh kill trong Linux

Cách sử dụng lệnh kill trong Linux

Linux là một hệ điều hành rất nhanh nhưng không phải lúc nào nó không…

Cách dùng lệnh who trong Linux

Cách dùng lệnh who trong Linux

Who là một công cụ dòng lệnh command-line, được ...

Cách dùng lệnh basename trong Linux

Cách dùng lệnh basename trong Linux

basename là một tiện ích dòng lệnh (command line) dùng để lấy ...

Cách sử dụng lệnh gzip trên Linux

Cách sử dụng lệnh gzip trên Linux

Gzip là một trong những thuật toán nén file phổ biến nhất, nó cho phép…

Cách dùng lệnh wait trong Linux

Cách dùng lệnh wait trong Linux

Wait là lệnh dùng để đợi một thời gian cho tới khi công việc nào…

Cách dùng lệnh ping trong Linux

Cách dùng lệnh ping trong Linux

Lệnh ping là một trong những công cụ được sử dụng nhiều nhất để khắc…

Cách dùng lệnh sleep trong Linux

Cách dùng lệnh sleep trong Linux

sleep là một tiện ích command line cho phép lập trình viên ..

Các ví dụ học Bash Script trong Linux cơ bản nhất

Các ví dụ học Bash Script trong Linux cơ bản nhất

Bash Script đuọc xem là mã code lập trình trên Linux ...

Vòng lặp until trong Shell Script

Vòng lặp until trong Shell Script

Top