SUSE Linux 伺服器備份與還原機制
伺服器備份與還原是確保系統可靠性與資料安全的重要策略。SUSE Linux (openSUSE / SLE) 可透過 tar
、rsync
、Snapper
、Bacula
等工具,並結合 Btrfs 快照實現完整、差異與增量備份,以及 Snapshots 基於檔案系統的快速還原。
目錄
- 備份概述
- 完整備份 (Full Backup)
- 差異備份 (Differential Backup)
- 增量備份 (Incremental Backup)
- 使用 rsync 進行高效能備份
- Btrfs Snapper 快照備份
- 使用 Bacula 自動化備份
- 資料庫備份
- 備份還原測試
- 結語
備份概述
為何需要備份?
- 資料保護:防止硬碟故障、人為誤刪、惡意攻擊
- 災難恢復:快速回滾至穩定狀態
- 合規需求:滿足企業或法規備份政策
備份類型
- 完整備份 (Full Backup):備份所有指定資料
- 差異備份 (Differential Backup):備份自上次完整備份後有變更的檔案
- 增量備份 (Incremental Backup):備份自上次任何備份後變更的檔案
完整備份 (Full Backup)
使用 tar
sudo tar -cvpzf /backup/full_backup_$(date +%F).tar.gz --exclude=/backup --one-file-system /
使用 rsync
sudo rsync -a --delete / /backup/full_backup/
差異備份 (Differential Backup)
sudo tar -cvpzf /backup/differential_$(date +%F).tar.gz --newer-mtime="$(date -d '7 days ago' +%F)" /
或:
sudo rsync -a --compare-dest=/backup/full_backup/ / /backup/differential_backup/
增量備份 (Incremental Backup)
sudo tar -cvpzf /backup/incremental_$(date +%F_%H%M%S).tar.gz --listed-incremental=/backup/incremental.snar /
或:
sudo rsync -a --backup --backup-dir=/backup/incremental_$(date +%F) / /backup/full_backup/
使用 rsync 進行高效能備份
- 遠端備份:
rsync -avz --progress /data/ user@remote:/backup/
- 本地鏡像:
rsync -av --delete /data/ /backup/mirror/
- Crontab 排程:
sudo crontab -e
0 2 * * * rsync -a --delete /data/ /backup/mirror/
Btrfs Snapper 快照備份
openSUSE 預設 Btrfs 作為根檔案系統,可利用 Snapper 建立和管理快照。
- 安裝 Snapper
sudo zypper install snapper
- 初始化快照配置
sudo snapper -c root create-config /
- 建立手動快照
sudo snapper -c root create --description "Pre-upgrade snapshot"
- 列出快照
sudo snapper -c root list
- 還原資料檔案
sudo snapper -c root undochange <snapshot_id> -- /path/to/file
- 自動快照策略 (
/etc/snapper/configs/root
可設定 hourly, daily, weekly)
使用 Bacula 自動化備份
Bacula 是企業級備份解決方案。
- 安裝
sudo zypper install bacula-server bacula-client
- 配置 Director (bacula-dir.conf)
- 配置 Storage (bacula-sd.conf)
- 啟動服務
sudo systemctl enable --now bacula-dir bacula-sd bacula-fd
- 執行備份
bconsole run job=BackupClient1
資料庫備份
MariaDB / MySQL
sudo mysqldump -u root -p --all-databases > /backup/mysql_$(date +%F).sql
PostgreSQL
sudo pg_dumpall -U postgres > /backup/pgsql_$(date +%F).sql
備份還原測試
- Tar 還原:
sudo tar -xvpzf /backup/full_backup_*.tar.gz -C /restore_location
- Rsync 還原:
sudo rsync -av /backup/mirror/ /data/
結語
本指南介紹 SUSE Linux 上多種備份與還原機制:tar
、rsync
、Btrfs Snapper、Bacula 以及資料庫備份。建議結合快照與備份排程,確保系統與資料的可靠性與安全性。