dump是Linux分区自动备份的核心工具,专为已挂载文件系统设计,支持基于层级和时间戳的增量备份,需配合restore恢复,且必须使用-u参数更新/etc/dumpdates才能实现有效增量。
Linux 分区自动备份,dump 是核心工具,restore 是配套恢复手段。它专为文件系统(即分区)设计,天然支持增量备份和时间追踪,比 tar 更适合长期、可轮替的生产环境备份策略。
dump 本质是基于文件系统元数据工作的,所以只能备份已挂载的完整分区(如 /dev/sda1 对应的 /boot),不能对任意目录(如 /opt/myapp)做增量备份。常见可备份目标:
/boot(小而关键,适合实验)/home(用户数据集中,价值高)/var(日志、数据库数据卷等)/ 根分区(需确保有足够空间存储备份文件)注意:dump -0j -f /backup/etc.bak.bz2 /etc 虽能执行,但属于“伪备份”——它不记录到 /etc/dumpdates,后续无法用 -1 增量,也不推荐用于生产。
dump 的增量逻辑依赖两个条件:一是指定非 0 级别(如 -1),二是该分区此前执行过更低级别(如 -0)的备份,并且 -u 参数已将记录写入 /etc/dumpdates。
dump -0uj -f /backup/boot-0.bz2 /boot
dump -1uj -f /backup/boot-1.bz2 /boot
dump -W 查看哪些分区待备份、上次备份级别与时间cat /etc/dumpdates 确认时间戳是否更新若跳过 -u 或误删 /etc/dumpdates,后续所有 -1 及以上命令都会退化为全量,失去增量意义。
把 dump 命令写成脚本并加入计划任务,就能真正“自动”。例如每天凌晨 2 点执行增量备份:
/usr/local/bin/backup-boot.sh#!/bin/bashDUMP_DIR="/backup"DATE=$(date +%Y%m%d)dump -1uj -f "${DUMP_DIR}/boot-${DATE}.bz2" /boot && echo "$(date): boot incremental backup OK" >> /var/log/dump.log || echo "$(date): boot backup FAILED" >> /var/log/dump.log
然后添加定时任务:
crontab -e0 2 * * * /usr/local/bin/backup-boot.sh
建议搭配日志轮转(logrotate)和磁盘空间检查(如 df -h /backup),避免备份填满磁盘。
restore 不是简单解压,它提供四种互斥模式,按需使用:
restore -t -f /backup/boot-0.bz2 —— 先 查看 备份里有哪些文件restore -C -f /backup/boot-0.bz2 —— 对比 当前 /boot 和备份内容差异(哪些被删、改、新增)restore -i -f /backup/boot-0.bz2 —— 进入 交互式选择,只恢复其中几个文件(如仅还原 grub.cfg)restore -r -f /backup/boot-0.bz2 —— 全量还原,会清空当前分区再写入,慎用!务必先卸载或进入 rescue 模式恢复前请确认备份文件完整性:file /backup/boot-0.bz2 应显示 bzip2;必要时用 bzcat /backup/boot-0.bz2 | head -n5 快速抽检。