Tips

Rsync : command đồng bộ dữ liệu trên linux

Rsync (Remote Sync): 10 Practical Examples of Rsync Command in Linux

Rsync (Remote Sync) là một công cụ hữu hiệu để sao lưu và đồng bộ dữ liệu trên Linux. Với câu lệnh rsync bạn có thể sao lưu và đồng bộ dữ liệu remote  từ các máy sử dụng hệ điều hành Linux một cách dễ dàng và thuận tiện.

Rsync Local and Remote File Synchronization
Rsync Local and Remote File Synchronization

Trong bài viết này sẽ hướng dẫn bạn 10 công dụng hữu ích của rsync để truyền tải dữ liệu remotelocal trên hệ điều hành Linux. Bạn không cần chạy rsync với quyền root.

Các đặc điểm nổi bật khi dùng Rsync
  1. Hiệu quả trong việc sao lưu và dồng bộ file từ 1 hệ thống khác
  2. Hỗ trợ sao chép links, devices, owners, groups và permissions.
  3. Nhanh hơn sử dụng SCP (secure copy).
  4. Rsync tiêu tốn ít bandwidth vì nó có sử dụng cơ chế nén khi truyền tải và nhận dữ liệu.
Cú pháp cơ bản
# rsync options source destination
Các tuỳ chọn trong rsync
  1. -v : verbose
  2. -r : sao chép dữ liệu theo cách đệ quy ( không bảo tồn mốc thời gian và permission trong quá trình truyền dữ liệu)
  3. -a :chế độ lưu trữ cho phép sao chép các tệp đệ quy và giữ các liên kết, quyền sở hữu, nhóm và mốc thời gian
  4. -z : nén dữ liệu
  5. -h : định dạng số
Cài đặt Rsync

có thể cài đặt rsync theo câu lệnh.

# yum install rsync (On Red Hat based systems)
# apt-get install rsync (On Debian based systems)

1. Sao lưu, đồng bộ file trên local

This following command will sync a single file on a local machine from one location to another location. Here in this example, a file name backup.tar needs to be copied or synced to /tmp/backups/ folder.

Để copy file backup.tar sang thư mục /tmp/backups/ ta làm như sau:

[[email protected]]# rsync -zvh backup.tar /tmp/backups/

created directory /tmp/backups

backup.tar

sent 14.71M bytes  received 31 bytes  3.27M bytes/sec

total size is 16.18M  speedup is 1.10

Khi thư mục đích chưa tồn tại thì rsync sẽ tự động tạo thư mục đích cho bạn

Sao lưu đồng bộ thư mục trên local.

Bạn có thể đồng bộ toàn bộ file trong một thư mục tới 1 thư mục khác trên local, ví dụ bạn muốn dồng bộ thư mục /folder1 tới /folder2/

[[email protected]]# rsync -avzh /folder1 /folder2/

2. Sao lưu, đồng bộ dữ liệu từ / tới Server

Copy dữ liệu từ local lên server

Sao chép thư mục từ local lên Remote Server

Bạn có 1 thư mục chứa ảnh trên local images/ và bạn muốn đồng bộ lên server có IP x.x.x.x :

[[email protected]]$ rsync -avz images/ [email protected]:/home/
Copy dữ liệu từ server về local

Bạn có 1 thư mục chứa ảnh trên server là images/ và bạn muốn đồng bộ về máy local của bạn :

[[email protected]]# rsync -avzh [email protected]:/home/images /home/images/

3. Rsync qua SSH

Sử dụng SSH khi truyền tải file để đảm bảo file của bạn được bảo mật và không ai có thể đọc được dữ liệu khi dữ liệu được truyền tải qua internet.

Bạn cần cấp quyền user/root mật khẩu để hoàn thành tác vụ.

Copy File từ Remote Server về local với SSH

Bạn thêm option “-e” khi sử dụng SSH với rsync để truyền tải file.

[[email protected]]# rsync -avzhe ssh [email protected]:/root/install.log /tmp/

Copy File từ Local lên Remote Server với SSH
[[email protected]]# rsync -avzhe ssh backup.tar [email protected]:/backups/

4. Hiển thị quá trình truyền dữ liệu khi dùng rsync

Để hiển thị tiến trình truyền dữ liệu ta sử dung ‘–progress’. Nó sẽ hiển thị file và thời gian còn lại cho tới khi hoàn thành truyền dữ liệu.

[[email protected]]# rsync -avzhe ssh --progress /home/folder [email protected]:/root/folder

5. Sử dụng –include và –exclude.

Sử dụng 2 option này để bạn có thể chỉ định các file cần được sync hoặc bỏ qua không sync.

[[email protected]]# rsync -avze ssh --include 'R*' --exclude '*' [email protected]:/var/lib/rpm/ /root/rpm

6. Sử dụng –delete

If a file or directory not exist at the source, but already exists at the destination, you might want to delete that existing file/directory at the target while syncing .

Nếu file hoặc thư mục không tồn tại ở thư mục cần sync nhưng lại tồn tại ở thư mục đích, bạn cần delete chúng khi sync, ta sử dụng “-delete”

[[email protected]]# rsync -avz --delete [email protected]:/var/lib/rpm/ .

7. Cho phép file có kích cỡ nhất định

Bạn có thể sử dung“–max-size” để chỉ định giới hạn của file truyền tải.

[[email protected]]# rsync -avzhe ssh --max-size='200k' /var/lib/rpm/ [email protected]:/root/tmprpm

8. Tự đông xoá thư mục gốc khi hoàn thành việc sao lưu

Sử dụng ‘–remove-source-files‘ để xoá dữ liệu thư mục gốc khi hoàn tất sao lưu.

[[email protected]]# rsync --remove-source-files -zvh backup.tar /tmp/backups/

9. Do a Dry Run with rsync

Nếu bạn là người mới dùng rsync, bạn có thể sử dụng “–dry-run” để đảm bảo những thao tác của bạn

 

[email protected]]# rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/

10. Cấu hình băng thông cho file truyền tải

Sử dụng‘–bwlimit‘ để giới hạn bandwidth khi truyền tải file.

[[email protected]]# rsync --bwlimit=100 -avzhe ssh  /var/lib/rpm/  [email protected]:/root/tmprpm/
[[email protected]]# rsync -zvhW backup.tar /tmp/backups/backup.tar

 

Tags

Leave a Reply

Your email address will not be published. Required fields are marked *

Close