Debian 系统数据备份实用指南
术语澄清与总体思路
常用备份方法速览
| 方法 | 适用场景 | 关键命令或要点 |
|---|---|---|
| tar 归档 | 快速打包关键目录或做系统级快照 | 示例:sudo tar -czvf backup-$(date +%F).tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/run --exclude=/lost+found / |
| rsync 同步 | 本地/远程增量备份、目录镜像 | 示例:rsync -aAXv --delete /src/ /dst/;远程:rsync -avz -e ssh /src/ user@host:/dst/ |
| Duplicity | 加密增量、可落对象存储/远程 | 示例:duplicity --full-if-older-than 7D /data file:///backup/duplicity |
| Timeshift | 系统级快照(Btrfs/ZFS 或 rsync 后端) | 适合回滚系统配置与系统文件,不替代用户数据备份 |
| Clonezilla | 整盘/分区克隆,适合迁移与灾备 | 使用启动盘离线制作/恢复镜像 |
| Backup Ninja | 统一编排多任务、支持远程与安全策略 | 适合中小规模服务器环境 |
| 以上工具与方法均为 Debian 常见实践,可按需组合使用。 |
自动化定时备份示例脚本
sudo apt update && sudo apt install -y rsync cron#!/usr/bin/env bash
set -euo pipefail
SRC="/home /etc /var/www /opt"
BACKUP_BASE="/backup"
DATE=$(date +%F)
KEEP_DAYS=7
# 创建当日目录
DST="$BACKUP_BASE/$DATE"
mkdir -p "$DST"
# 执行 rsync 增量镜像(--delete 保持两端一致)
rsync -aAXv --delete \
--exclude={"/proc","/sys","/dev","/tmp","/run","/mnt","/media","/lost+found"} \
"$SRC" "$DST/"
# 可选:同步到远程(提前配置 SSH 免密)
# rsync -avz --delete "$DST/" user@remote:/backup/$DATE/
# 清理 7 天前的备份
find "$BACKUP_BASE" -maxdepth 1 -type d -mtime +$KEEP_DAYS -print0 | xargs -0 rm -rf
sudo chmod +x /usr/local/bin/backup.shsudo crontab -e 添加0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
$DST 执行 tar czf 后再传输。数据库与网站数据备份要点
mysqldump -u root -p --single-transaction --routines --triggers --databases db1 db2 > /backup/db-$(date +%F).sqlrsync -avz --delete /var/www/ user@backup:/backup/www/恢复与校验及注意事项
sudo tar -xzvf backup-2026-01-04.tar.gz -C /rsync -av /backup/2026-01-04/ /duplicity restore file:///backup/duplicity /restore/