在 Linux 系统中,dump 和 restore 是一对传统的文件系统备份与还原工具。它们直接操作文件系统的底层结构(inode),能够完整地备份包括权限、时间戳、特殊文件等在内的所有数据,并支持多级增量备份(级别 0~9),非常适合对 ext2/ext3/ext4 文件系统进行全量或增量备份。
1. dump 命令 – 备份文件系统
基本语法
dump [选项] [备份级别] [要备份的设备或挂载点] [备份目标]
常用选项:
· -0 ~ -9 :指定备份级别,0 为全量备份,1~9 为增量备份(仅备份自上次较低级别备份后修改过的文件)。
· -f :指定备份输出的设备或文件(如磁带机 /dev/st0 或普通文件)。
· -u :备份成功后更新 /etc/dumpdates 文件,记录备份时间与级别,供后续增量备份参考。
· -v :显示详细信息。
· -W :显示需要备份的文件系统及上次备份时间(根据 /etc/dumpdates)。
备份示例
1. 全量备份根分区(/dev/sda1)到文件
dump -0uf /backup/root.dump /dev/sda1
2. 增量备份(级别 1)到磁带设备
dump -1uf /dev/st0 /dev/sda1
3. 查看需要备份的文件系统信息
dump -W
2. restore 命令 – 还原数据
restore 用于从 dump 创建的备份文件中提取数据,支持交互式浏览和选择性还原。
基本语法
restore [模式选项] [选项] [备份文件]
常用模式(必须指定一种):
· -i :交互式模式,进入类似 ftp 的界面,可浏览备份内容并选择要还原的文件。
· -r :还原整个文件系统(通常用于重建文件系统,会清空当前目录下的数据,需在空目录或新格式化分区中执行)。
· -t :列出备份内容。
· -x :提取指定文件或目录。
其他选项:
· -f :指定备份文件或设备。
· -v :显示详细信息。
· -d :调试模式,输出更多信息。
还原示例
1. 交互式查看并还原文件
restore -if /backup/root.dump
进入交互界面后,使用 ls、cd、add(标记要还原的文件)、delete、extract 等命令。
2. 完整还原整个文件系统(假设已挂载空分区到 /mnt)
cd /mnt
restore -rf /backup/root.dump
3. 只提取备份中的某个文件(如 /etc/passwd)
restore -xf /backup/root.dump /etc/passwd
4. 列出备份内容
restore -tf /backup/root.dump | less
3. 重要注意事项
· 文件系统支持:dump/restore 最初为 ext2/3/4 设计,对其他文件系统(如 XFS、Btrfs)支持不佳,可能需要使用其自带的工具(如 xfsdump/xfsrestore)。
· 需要 root 权限:因为要读取原始分区信息。
· 增量备份依赖 /etc/dumpdates:确保该文件存在且可写,否则无法记录备份历史。
· 还原时目标目录最好为空,尤其是使用 -r 完全还原时,避免新旧文件混合。
· 备份到文件时,如果文件超过 2GB,注意文件系统是否支持大文件,或使用磁带机等设备。
4. 总结
dump 和 restore 是一对功能强大且经典的备份工具,特别适合需要对 ext 文件系统进行定期增量备份的场景。虽然现代备份工具(如 tar、rsync)更通用,但 dump/restore 的低层次备份方式在某些环境下仍有不可替代的优势(例如完整保留文件系统元数据、备份效率高)。掌握它们可以为 Linux 系统管理增加一项可靠的备份手段。