數據備份是運維工作的生命線。backup-manager 作為一款輕量級、配置簡單、支援多協議遠程傳輸的命令行備份工具,憑藉「開箱即用、一勞永逸」的特性,成為中小規模 Linux 環境備份的首選。本文從安裝、核心配置、多協議遠程推送、數據庫備份、加密策略五個維度,手把手教您構建企業級備份體系。

/etc/backup-manager.conf 管理所有策略,語義化變量名零門檻上手cron 實現定時增量/全量備份,無需人工干預apt update && apt install backup-manager
# 安裝向導會詢問備份存儲目錄、備份源目錄,可後續修改配置文件
# 需啟用 EPEL 倉庫
yum install epel-release -y
yum install backup-manager -y
場景:每週對 /etc、/home、/var/log 全量備份,通過 SSH 推送至兩台異地服務器 dev1、dev3,同步備份本地 MySQL 數據庫,啟用 GPG 加密。
vim /etc/backup-manager.conf
# === 基礎存儲 ===
export BM_REPOSITORY_ROOT="/var/archives" # 本地暫存目錄
export BM_TEMP_DIR="/tmp" # 臨時工作目錄
# === 備份源 ===
export BM_TARBALL_DIRECTORIES="/etc /home /var/log" # 空格分隔多目錄
export BM_TARBALL_NAMEFORMAT="long" # 含主機名/時間戳的長文件名
export BM_TARBALL_FILETYPE="tar.gz" # 壓縮格式
# === MySQL 備份 ===
export BM_MYSQL_DATABASES="__ALL__" # 備份所有數據庫
export BM_MYSQL_ADMINUSER="root"
export BM_MYSQL_ADMINPASS="your_mysql_root_pass"
export BM_MYSQL_FILETYPE="sql.gz"
# === PostgreSQL 備份 ===
export BM_PGSQL_DATABASES="__ALL__"
export BM_PGSQL_ADMINUSER="postgres"
# === 加密配置 ===
export BM_ENCRYPTION="gpg" # 啟用 GPG 加密
export BM_ENCRYPTION_RECIPIENT="backup-admin@example.com" # 接收者公鑰郵箱
# === 遠程上傳 (SSH/SCP) ===
export BM_UPLOAD_METHOD="scp"
export BM_UPLOAD_HOSTS="dev1 dev3" # 多目標空格分隔
export BM_UPLOAD_DESTINATION="/mnt/backups/$(hostname)"
export BM_UPLOAD_SSH_USER="backup-user"
export BM_UPLOAD_SSH_KEY="/root/.ssh/id_rsa_backup" # 密鑰認證,免密碼
export BM_UPLOAD_SSH_PORT=22
# === 清理策略 ===
export BM_TARBALL_TTL="30" # 本地保留 30 天
export BM_UPLOAD_TTL="90" # 遠程保留 90 天
gpg --full-generate-key(選 RSA 4096bit,無過期)gpg --export -a "backup-admin@example.com" > backup.pubgpg --import backup.pubssh-copy-id -i ~/.ssh/id_rsa_backup backup-user@dev1# 查看預設 cron 任務(安裝自動創建)
cat /etc/cron.daily/backup-manager
# 或自定義排程(如每天凌晨 2:30 執行)
echo '30 2 * * * root /usr/sbin/backup-manager' > /etc/cron.d/backup-manager-custom
# 手動觸發備份測試
backup-manager --verbose
# 恢復單個文件
tar -xzf /var/archives/hostname-etc-20240115.tar.gz -C /tmp/restore etc/nginx/nginx.conf
# 恢復 MySQL 數據庫
zcat /var/archives/hostname-mysql-20240115.sql.gz | mysql -u root -p dbname

BM_TARBALL_INCREMENTAL="true" 配合 BM_TARBALL_INCREMENTAL_FREQUENCY="7" 實現週全量+日增量pigz,設置 BM_TARBALL_COMPRESS_CMD="pigz" 多核加速backup-manager --verbose 2>&1 | logger -t backup 接入日誌審計系統BM_UPLOAD_HOSTS 為 3+ 節點,啟用 BM_UPLOAD_PURGE="true" 自動清理過期遠程備份backup-manager 以極低的學習成本提供了企業級備份能力:標準化配置、多協議傳輸、數據庫感知、加密合規。建議將其納入基礎設施代碼(IaC)管理,通過 Ansible/SaltStack 批量分發配置,實現全環境備份策略一致性。記住:未經驗證的備份等於沒有備份,請每季度進行至少一次全量恢復演練。
Linux 終端機收發 Gmail 完全指南:Alpine 郵件用戶端安裝與 IMAP/SMTP 設定
Linux vi 編輯器 E325 ATTENTION 交換檔衝突解決:識別衝突來源、恢復內容、清理 .swp 檔案
Linux 修改 IP 位址完整指令集:即時生效 vs 永久生效、NetworkManager/nmcli 現代做法
Linux cp 指令覆蓋提示關閉完全指南:alias 機制解析與四種解決方案
RedHat/RHEL 手動安裝 JDK 完整指南:解壓、環境變量配置與驗證
Linux VirtualBox 安裝 Windows 8.1 報錯 0x000000C4 解決:啟用 CMPXCHG16B CPU 指令支援