Sử dụng borg backup

Borg Backup (thường được gọi là Borg) là một công cụ sao lưu mạnh mẽ với tính năng loại bỏ dữ liệu trùng lặp. Nó lý tưởng để tạo và quản lý các bản sao lưu được mã hóa một cách hiệu quả. Tôi đã đăng kí sử dụng một Hetzner nên bắt đầu học cách sử dụng nó.

Trước khi bắt đầu

Trước khi bắt đầu, hãy đảm bảo bạn đã có những yêu cầu sau:

  1. Hệ điều hành dựa trên Linux (Borg cũng tương thích với các hệ điều hành giống Unix khác như macOS).
  2. Dung lượng lưu trữ đủ cho kho lưu trữ sao lưu của bạn (dù là cục bộ hay từ xa). Có thể đăng kí dùng thử borgbase
  3. Kiến thức cơ bản về dòng lệnh Linux.

Bước 1: Cài Đặt Borg Backup

Trên hầu hết các bản phân phối Linux, Borg có thể được cài đặt bằng trình quản lý gói:

Debian/Ubuntu

sudo apt update
sudo apt install borgbackup

Với các hệ điều hành khác, hãy tham khảo tài liệu cài đặt chính thức của Borg.

Bước 2: Khởi Tạo Repository (kho lưu trữ)

Kho lưu trữ Borg là nơi dữ liệu sao lưu sẽ được lưu trữ. Bạn có thể tạo kho lưu trữ cục bộ hoặc trên máy chủ từ xa qua SSH.

Remote Repo

borg init --encryption=repokey user@remote-server:/path/to/repository
  • Thay thế [email protected]:/path/to/repository bằng thông tin chi tiết về máy chủ SSH của bạn.

  • --encryption=repokey đảm bảo rằng dữ liệu sao lưu được mã hóa bằng khóa được lưu trữ.

  • Bạn sẽ được nhắc nhập mật khẩu. Hãy giữ mật khẩu này cẩn thận; nếu mất, bạn sẽ không thể truy cập dữ liệu.

Bước 3: Tạo Bản Sao Lưu Đầu Tiên

Để sao lưu một thư mục, sử dụng lệnh borg create.

Ví Dụ

borg create /path/to/repository::backup-name /path/to/directory
  • ::backup-name chỉ định tên của bản sao lưu này.
  • Thay /path/to/directory bằng đường dẫn tới các tệp tin bạn muốn sao lưu.

Tùy Chọn

  • Loại Trừ: Sử dụng --exclude để loại trừ các tệp tin hoặc thư mục cụ thể:

    borg create /path/to/repository::backup-name /path/to/directory --exclude '/path/to/directory/temp'
    
  • Nén: Bật nén bằng --compression (ví dụ: zstd,9 để nén tối đa):

  • Sử dụng --encryption=none nếu không cần mã hóa.

Bước 3: Tạo bản sao lưu đầu tiên

Để sao lưu một thư mục, chạy lệnh sau:

borg create /path/to/repository::backup-name /path/to/data
  • Thay thế /path/to/repository bằng vị trí kho lưu trữ của bạn.
  • Thay thế backup-name bằng một tên duy nhất cho bản sao lưu (ví dụ: 2024-12-14-backup).
  • Thay thế /path/to/data bằng thư mục hoặc tệp mà bạn muốn sao lưu.

Ví dụ:

borg create /backups::my-first-backup /home/user/documents

Bạn cũng có thể bao gồm nhiều thư mục và tệp:

borg create /backups::multi-source-backup /etc /var/log /home/user

Bước 4: Liệt kê các bản sao lưu

Để xem danh sách tất cả các bản sao lưu trong một kho lưu trữ:

borg list /path/to/repository

Bước 5: Khôi phục bản sao lưu

Khôi phục các tệp hoặc thư mục từ một bản sao lưu bằng cách sử dụng:

borg extract /path/to/repository::backup-name

Để khôi phục một tệp hoặc thư mục cụ thể:

borg extract /path/to/repository::backup-name /path/to/restore

Bước 6: Kiểm tra và dọn dẹp các bản sao lưu

Kiểm tra tính toàn vẹn

Đảm bảo tính toàn vẹn của các bản sao lưu:

borg check /path/to/repository

Dọn dẹp các bản sao lưu cũ

Xóa các bản sao lưu cũ để giải phóng không gian lưu trữ trong khi giữ lại một chính sách lưu trữ được xác định:

borg prune --list /path/to/repository --keep-daily=7 --keep-weekly=4 --keep-monthly=6

Lệnh này giữ lại 7 bản sao lưu hàng ngày, 4 bản sao lưu hàng tuần và 6 bản sao lưu hàng tháng gần nhất.

Bước 7: Tự động hóa sao lưu

Sử dụng cron job hoặc systemd timer để tự động hóa sao lưu.

Ví dụ về cron job

Chỉnh sửa crontab của bạn:

crontab -e

Thêm một dòng để lên lịch sao lưu hàng ngày lúc 2 giờ sáng:

0 2 * * * borg create /path/to/repository::daily-$(date +\%Y-\%m-\%d) /path/to/data && borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6