- vừa được xem lúc

[Linux] - Backup Dữ Liệu Trên Hệ Thống Linux Sử Dụng Rsync

0 0 14

Người đăng: Kien Le

Theo Viblo Asia

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.

Các đặc điểm nổi bật khi dùng Rsync

  • Hiệu quả trong việc sao lưu và dồng bộ file từ 1 hệ thống khác
  • Hỗ trợ sao chép links, devices, owners, groups và permissions.
  • Nhanh hơn sử dụng SCP (secure copy).
  • 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ác thông số cơ bản

Các tuỳ chọn trong rsync

–v : verbose

–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)

–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

–z : nén dữ liệu

–h : định dạng số

1. 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)

2. Cách sao lưu trên rsync

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

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

[_@.com]# 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

2.2 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/

[_@.com]# rsync -avzh /folder1 /folder2/

2.3 Sao lưu, đồng bộ dữ liệu từ Server về local và từ local lên 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 :

[_@.com]$ rsync -avz images/ _@.com:/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 :

[_@.com]# rsync -avzh _@.com:/home/images /home/images/

2.4 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.

[_@.com]# rsync -avzhe ssh _@.com:/root/install.log /tmp/ 

Copy File từ Local lên Remote Server với SSH

[_@.com]# rsync -avzhe ssh backup.tar _@.com:/backups/

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.

[_@.com]# rsync -avzhe ssh --progress /home/folder _@.com:/root/folder

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.

[_@.com]# rsync -avze ssh --include 'R*' --exclude '*' _@.com:/var/lib/rpm/ /root/rpm

Sử dụng –delete 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”

[_@.com]# rsync -avz --delete _@.com:/var/lib/rpm/ .

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.

[_@.com]# rsync -avzhe ssh --max-size='200k' /var/lib/rpm/ _@.com:/root/tmprpm

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.

[_@.com]# rsync --remove-source-files -zvh backup.tar /tmp/backups/

Thử Dry Run với 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

_@.com]# rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/

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.

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

Mình xin kết thúc phần tìm hiểu Linux rsync tại đây. Thân ái và quyết thắng ?

Tham khảo:

Bình luận

Bài viết tương tự

- vừa được xem lúc

Docker: Chưa biết gì đến biết dùng (Phần 3: Docker-compose)

1. Mở đầu. . .

0 0 121

- vừa được xem lúc

Các command trên ubuntu (chiếm 80%) - phần 5

Hello 500 ae, sau 4 số trong seri này mình thấy có vẻ ae có hứng thú đọc chủ đề này ghê. Hi vọng những gì mình tìm hiểu được sẽ giúp ích được cho nhiều bạn hơn.

0 0 51

- vừa được xem lúc

Những lệnh command shell linux cơ bản có thể bạn chưa biết - Phần 1

Bài viết này sẽ liệt kê một số command cơ bản thường được dùng trong linux, tiện dụng cho các bạn khi sử dụng linux mà có thể bạn chưa biết. Tôi là ai, câu lệnh này sẽ cho bạn biết bạn đang sử dụng linux bằng tài khoản người dùng nào.

0 0 55

- vừa được xem lúc

Cách sử dụng lệnh SCP để truyền tệp an toàn

SCP (secure copy) là một tiện ích dòng lệnh cho phép bạn sao chép an toàn các tệp và thư mục giữa hai vị trí. . From your local system to a remote system. Between two remote systems from your local system.

0 0 55

- vừa được xem lúc

Người ta làm cách nào để backup thường xuyên thư mục rất lớn?

. Vấn đề về sao lưu thư mục lớn. Mình có lưu "sương sương" 300GB các tệp tin của người dùng upload lên, như hình ảnh hay các tệp đính kèm.

0 0 49

- vừa được xem lúc

Các command trên ubuntu (chiếm 80%) - phần 4

Sau một kì nghỉ tết trong thời buổi đại dịch vừa qua. Không còn những buổi dong chơi đi chúc tết nữa. Ở nhà ra số tiếp theo cho anh em đây. Dưới đây sẽ là 2 command được sử dụng nhiều nhất khi sử dụng file.

0 0 52