Banner happy new year 2024

Cách sao lưu Raspberry Pi

Thứ năm - 23/01/2025 20:53

Sao lưu Raspberry Pi không quá phức tạp. Mặc dù có nhiều giải pháp sao lưu tinh vi, đôi khi cách tiếp cận đơn giản lại hiệu quả nhất. Bài viết này sẽ chỉ cho bạn cách sử dụng rsync – một công cụ dòng lệnh nhỏ nhưng mạnh mẽ, hoàn hảo để tạo bản sao lưu cục bộ đáng tin cậy cho thiết lập Raspberry Pi của bạn.

 

Tại sao Rsync là công cụ tốt nhất để sao lưu Pi?

Rsync (remote sync) là công cụ đồng bộ và chuyển file mạnh mẽ được cài đặt sẵn trên Raspberry Pi của bạn.

Về cơ bản, rsync sao chép hiệu quả các file từ vị trí này sang vị trí khác, nhưng nó thông minh hơn nhiều so với thao tác sao chép đơn giản. Nó chỉ chuyển các phần file đã thay đổi, giúp tiết kiệm thời gian và tài nguyên hệ thống. Điều này đặc biệt hữu ích khi sao lưu các file lớn thường xuyên thay đổi.

Mọi người chủ yếu sử dụng rsync để sao lưu dữ liệu người dùng quan trọng của mình trên Pi. Ví dụ, nếu bạn duy trì máy chủ thư viện ảnh trên Raspberry Pi của mình, rsync sẽ là lựa chọn hoàn hảo để lưu bản sao lưu của tất cả các hình ảnh quý giá đó trên ổ cứng ngoài, với các file mới hoặc đã sửa đổi được tự động phát hiện và sao chép.

Không giống như các công cụ sao lưu sao chép toàn bộ file, rsync chỉ chuyển các phần đã thay đổi, giúp sao lưu nhanh hơn đáng kể và giảm hao mòn trên thẻ SD. Giao diện dòng lệnh của rsync giúp nó hoàn hảo để tự động hóa với các tác vụ cron, trong khi kiểm tra tổng hợp tích hợp đảm bảo tính toàn vẹn của bản sao lưu. Tuyệt vời nhất là bản chất gọn nhẹ của rsync nghĩa là nó sẽ không làm chậm Pi của bạn trừ khi quá trình sao lưu đang chạy, cũng như không chiếm quá nhiều dung lượng lưu trữ trên thẻ SD.

Vì những lý do này, rsync là giải pháp tốt nhất cho nhu cầu này và bài viết tin rằng đây là lựa chọn lý tưởng cho nhiều người dùng Raspberry Pi khác muốn có một hệ thống sao lưu đáng tin cậy và hiệu quả.

Sử dụng Rsync để sao lưu các file và thư mục Raspberry Pi

Cách đơn giản nhất để sao lưu một thư mục là sử dụng lệnh:

rsync -av /source/directory /backup/location

Ví dụ, để sao lưu thư mục root vào ổ cứng ngoài được mount tại “/media/backup”, hãy sử dụng lệnh:

rsync -av --delete /home/david/immich-app /media/backup

... để sao lưu cơ sở dữ liệu thư viện ảnh.

Sao lưu thư mục Rsync Raspberry

Sao lưu thư mục Rsync Raspberry

Sau đây là những gì các tùy chọn khác nhau thực hiện:

  • -a kích hoạt chế độ lưu trữ, chế độ này bảo toàn quyền, quyền sở hữu và timestamp của file
  • -v cung cấp đầu ra chi tiết để bạn có thể xem những gì đang được sao chép.
  • --delete xóa các file khỏi vị trí sao lưu không còn tồn tại trong nguồn.

Lưu ý: Bạn cũng nên biết rằng rsync đặc biệt chú ý đến dấu gạch chéo theo sau trong đường dẫn. Dấu gạch chéo theo sau trên nguồn có nghĩa là "sao chép nội dung của thư mục này" chứ không phải chính thư mục đó. Ví dụ, rsync -av --delete /home/pi/folder /media/backup sao chép nội dung của ‘folder’ trực tiếp vào ‘backup’, trong khi bỏ dấu gạch chéo sao chép chính thư mục ‘folder’ vào ‘backup’.

Xác minh bản sao lưu Raspberry Pi

Trước khi dựa vào bản sao lưu, bạn nên xác minh rằng nó hoạt động chính xác. Cách đơn giản nhất để kiểm tra là sử dụng tùy chọn chạy thử với rsync, có thể được chỉ định là -n hoặc --dry-run. Chạy lệnh:

rsync -avn --delete /home/pi/folder /media/backup

... sẽ hiển thị không có file nào cần chuyển nếu bản sao lưu của bạn được cập nhật.

Để xác minh kỹ lưỡng hơn, bạn có thể thêm tùy chọn -c hoặc --checksum vào lệnh rsync của mình. Mặc dù chậm hơn so với so sánh timestamp và kích thước mặc định, nhưng điều này đảm bảo rằng mọi file đều hoàn toàn giống hệt nhau giữa nguồn và bản sao lưu bằng cách tính toán checksum. Chỉ cần chạy:

rsync -avc --delete /home/pi/folder /media/backup

Cách chi tiết nhất để xác minh bản sao lưu của bạn là sử dụng lệnh diff, lệnh này sẽ so sánh mọi file và thư mục giữa vị trí nguồn và vị trí sao lưu. Để thực hiện xác minh này, hãy sử dụng:

diff -r /home/pi/folder /media/backup/folder

Tùy chọn -r yêu cầu diff kiểm tra tất cả các thư mục con theo cách đệ quy. Nếu lệnh không tạo ra đầu ra, điều đó có nghĩa là bản sao lưu giống hệt với nguồn. Nếu có sự khác biệt, diff sẽ cho bạn biết chính xác những file nào khác hoặc bị thiếu.

Tạo bản sao lưu đầy đủ của Raspberry Pi bằng Rsync

Trong một số trường hợp, việc sao lưu toàn bộ thẻ SD Raspberry Pi của bạn có thể thuận tiện và an toàn hơn thay vì chỉ một số ít thư mục quan trọng.

Để tạo bản sao lưu đầy đủ của Raspberry Pi bằng rsync, bạn sẽ cần một đích sao lưu - một thẻ SD khác hoặc ổ cứng ngoài có đủ dung lượng để chứa toàn bộ hệ thống của bạn. Ổ sao lưu phải được định dạng bằng hệ thống file tương thích với Linux như ext4 để bảo toàn tất cả các quyền và thuộc tính của file một cách chính xác.

Phần khó nhất khi sao lưu toàn bộ hệ thống Raspberry Pi là xử lý đúng các thư mục và file hệ thống đặc biệt. Theo kinh nghiệm, giải pháp dễ nhất là loại trừ các thư mục hệ thống không cần sao lưu hoặc có thể gây ra sự cố nếu khôi phục. Tạo một file có tên “backup-exclude.txt” và thêm các thư mục hệ thống sau đây cần được loại trừ khỏi bản sao lưu:

  • /proc/* # Thông tin tiến trình runtime
  • /sys/* # Thông tin hệ thống và kernel
  • /dev/* # File thiết bị
  • /tmp/* # File tạm thời
  • /run/* # Dữ liệu runtime
  • /mnt/* # Điểm mount
  • /media/* # Phương tiện di động
  • /home/pi/.cache/* # File cache người dùng
  • /lost+found # Thư mục khôi phục hệ thống file

Với các loại trừ này, bạn có thể đóng nhiều ứng dụng đang chạy nhất có thể rồi thực hiện lệnh sao lưu sau:

sudo rsync -avxhP --delete --exclude-from=/home/pi/backup-exclude.txt / /media/backup/rootfs/

Tùy chọn -x ngăn rsync vượt qua ranh giới hệ thống file, điều này có thể gây ra sự cố với các thư mục hệ thống. Tùy chọn -h khiến rsync hiển thị kích thước file và tốc độ truyền ở định dạng dễ đọc đối với con người.

Tự động sao lưu rsync

Mặc dù sao lưu đầy đủ được tạo thủ công rất hữu ích, nhưng nhiều người thích tự động hóa chúng bằng trình lập lịch cron tích hợp của Linux. Để thiết lập, hãy tạo một file có tên là “backup-pi.sh” trong thư mục root với nội dung sau:

#!/bin/bash
BACKUP_DRIVE="/media/backup"
LOG_FILE="/home/pi/backup-log.txt"
# Check if backup drive is mounted
if ! mountpoint -q $BACKUP_DRIVE; then
    echo "Backup drive not mounted at $BACKUP_DRIVE" >> $LOG_FILE
    exit 1
fi
# Create timestamp for logging
date >> $LOG_FILE
# Run backup with error checking
sudo rsync -avxhP --delete \
    --exclude-from=/home/pi/backup-exclude.txt \
    / $BACKUP_DRIVE/rootfs/ \
    >> $LOG_FILE 2>&1
# Record backup completion
echo "Backup finished at 24/01/2025" >> $LOG_FILE
echo "-------------------" >> $LOG_FILE

Làm cho script có thể thực thi được bằng chmod +x backup-pi.sh, sau đó lên lịch bằng cron. Nhập crontab -e và thêm dòng này để chạy sao lưu hàng ngày vào lúc nửa đêm:

0 0 * * * /home/pi/backup-pi.sh

Khôi phục bản sao lưu Rsync Raspberry Pi

Để khôi phục các file hoặc thư mục riêng lẻ, quy trình này rất đơn giản. Chỉ cần hoán đổi nguồn và đích trong lệnh rsync. Ví dụ, để khôi phục thư viện ảnh từ bản sao lưu:

rsync -av /media/backup/home/david/immich-app/ /home/david/immich-app/

Để khôi phục toàn bộ hệ thống, trước tiên bạn cần cài đặt lại Raspberry Pi OS trên thẻ SD của mình. Bắt đầu bằng cách cài đặt bản sao mới của Raspberry Pi OS trên thẻ SD mới. Sau khi hoàn tất, hãy khởi động Pi bằng thẻ SD mới và hoàn tất quy trình thiết lập ban đầu. Tiếp theo, kết nối ổ đĩa sao lưu của bạn với Pi của bạn. Khi mọi thứ đã được kết nối và mount đúng cách, bạn có thể khôi phục bản sao lưu của mình bằng lệnh rsync:

sudo rsync -avxhP /media/backup/rootfs/ /

Sau khi khôi phục hoàn tất, bạn nên khởi động lại Pi của mình để kiểm tra xem tất cả các file đã khôi phục đã được load đúng cách chưa. Bạn cũng nên xác minh rằng các service và cấu hình quan trọng của mình đang hoạt động như mong đợi.

Nếu một số ứng dụng không hoạt động sau khi khôi phục, hãy kiểm tra file nhật ký của chúng (thường là trong /var/log/) để tìm bất kỳ lỗi nào liên quan đến quyền. Bạn có thể cần chạy:

sudo chown -R $USER:$USER /home/$USER

... để sửa quyền sở hữu các file thư mục root. Như bạn thấy, khôi phục bằng rsync dễ như tạo bản sao lưu – chỉ cần đảo ngược đường dẫn nguồn và đích trong các lệnh.

Mặc dù dòng lệnh rsync rất đơn giản, nhưng có một số lựa chọn thay thế GUI tuyệt vời nếu bạn không thoải mái với terminal. Ví dụ, Syncthing cho phép bạn đồng bộ nhiều thư mục trên các hệ thống khác nhau, trong khi Timeshift cung cấp chức năng tạo snapshot hệ thống với giao diện gọn gàng. Bất kể bạn chọn công cụ nào, điều quan trọng là phải duy trì sao lưu thường xuyên Raspberry Pi để bảo vệ dữ liệu có giá trị và cấu hình hệ thống của bạn.

Nguồn tin: Quantrimang.com:

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

  Ý kiến bạn đọc

THỐNG KÊ TRUY CẬP
  • Đang truy cập107
  • Máy chủ tìm kiếm6
  • Khách viếng thăm101
  • Hôm nay4,193
  • Tháng hiện tại248,909
  • Tổng lượt truy cập10,463,175
QUẢNG CÁO
Phan Thanh Phú
Quảng cáo 2
Liên kết site
Đăng nhập Thành viên
Hãy đăng nhập thành viên để trải nghiệm đầy đủ các tiện ích trên site
Thăm dò ý kiến

Bạn thấy Website cần cải tiến những gì?

Lịch Âm dương
Máy tính
banner left
banner right
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây