Hướng dẫn backup với Restic trên Linux

Restic là gì?

Restic là một chương trình dùng để backup và restore. Ưu điểm của Restic bao gồm:

  • Không quá phức tạp khi thực hiện backup và restore
  • Tốc độ thực hiện nhanh, hầu như chỉ phụ thuộc vào tốc độ của disk và đường truyền mạng
  • Có thể đảm bảo được bản backup không lỗi và có thể thực hiện restore
  • Hoàn toàn miễn phí

Thực hiện cài đặt Restic trên Linux

Để cài đặt Restic trên Linux, ta cần thực hiện câu lệnh sau:

  • RHEL & CentOS:

yum install yum-plugin-copr -y

yum copr enable copart/restic
yum install restic -y
  • Debian:

apt-get install restic -y

Sau khi cài đặt hoàn tất, ta dùng lệnh sau để kiểm tra lại:

restic version

Nếu cài đặt thành công, kết quả tương tự như hình bên dưới:

Khởi tạo một Repository

Đối với Restic, nơi sẽ lưu trữ các bản backup được gọi là repository. Một repository có thể được lưu trữ local hoặc remote.

Ở hướng dẫn này, kỹ thuật chỉ đề cập đến việc backup ở local và remote thông qua SFTP

Local

Để tạo repo trên local, ta dùng lệnh

restic init --repo <đường dẫn chứa repo>

sau đó nhập password 2 lần để đặt password cho repo

Remote thông qua SFTP

Tiến trình backup sẽ không thể thực hiện nếu như có bất kỳ thông tin xác thực nào cần cung cấp, ví dụ như password của user dùng để thực hiện SFTP. Do đó, để thực hiện backup remote thông qua SFTP, trước tiên ta cần phải thực hiện cấu hình SSH thông qua key.

Ta gọi server đã cài đặt Restic là server A và server thực hiện lưu trữ repository là server B.

Trên server A, ta tiến hành tạo cặp khoá private key và public key bằng lệnh sau:

ssh-keygen -t rsa

Lưu ý: ở dòng Enter passphrase ta phải Enter để bỏ qua vì nếu đặt passphrase thì khi SFTP ta cũng cần nhập passphrase khiến quá trình backup không thể thực hiện

Tiếp tục ta dùng lệnh sau để copy public key sang server B:

ssh-copy-id -i <file public key> <user>@<host>

Sau khi thực hiện xong, ta có thể thực hiện tạo remote repo thông qua lệnh:

restic -r sftp:<user>@<host>:<nơi chứa backup> init

Thực hiện Backup

Đối với Restic, các bản backup được gọi là snapshot.

Ta có thể thực hiện backup với câu lệnh:

restic -r <repo đã tạo> -v backup <thư mục hoặc file cần backup> đối với backup local

restic -r sftp:<user>@<host>:<repo đã tạo> -v backup <thư mục hoặc file cần backup>

Ví dụ thực hiện local backup thư mục /home sang repo /backup

Ví dụ thực hiện remote backup thư mục /home sang repo /remote-backup ở một VPS khác

Thực hiện Restore

Restore từ Snapshot

Ta cần sử dụng lệnh
restic -r <repo> restore <snapshot> --target <nơi restore>

Trong đó, snapshot có thể xác định bằng lệnh restic -r <repo> snapshots hoặc sử dụng từ khoá lastest để chọn bản snapshot được tạo gần nhất

Restore thông qua mount point

Đối với cách restore trên, có thể thấy là ta cần restore cả bản snapshot, điều này sẽ làm tốn thời gian và không cần thiết nếu như ta chỉ cần restore một vài file, directory mà thôi.

Ta có thể sử dụng cách restore thông qua mount point để tiến hành copy những gì mà ta cần. Để thực hiện ta dùng lệnh như sau:

mkdir /mnt/restic

screen -S restic

restic -r <repo> mount /mnt/restic

Sau khi thực hiện xong, ta nhấn tổ hợp phím Ctrl + A + D để thoát khỏi screen

Tiếp theo ta có thể truy cập vào thư mục /mnt/restic/hosts/<hostname> thì sẽ thấy được danh sách các bản snapshot kèm theo thời gian. Ta có thể tiếp tục truy cập vào bản snapshot cần thiết và lấy dữ liệu bằng lệnh cp hoặc rsync.

Sau khi toàn tất, ta dùng lệnh umount /mnt/restic để unmount, tiếp theo dùng lệnh screen -X -S restic quit để tắt screen.

Trên đây 123HOST đã hướng dẫn các bạn cách sử dụng Restic backup. Chúc các bạn thành công.

 

Rate This Article

Leave A Comment?