DAR(Disk ARchive)是什么?Linux 下如何用它做备份和归档
DAR 是运行在 Linux/Unix 上的命令行磁盘归档与备份工具,全称 Disk ARchive,采用 GPL 许可。它适合需要把大目录打包保存、并希望后续只备份变化部分的场景。如果你只是偶尔打包几个文件,tar 已经够用;如果你要定期备份整个目录树、需要差分或增量备份、或者希望归档能切片、压缩、加密并保留索引,DAR 值得了解。下面按“它是什么—怎么装—怎么用—怎么选版本”的顺序说明。
DAR 能解决什么问题
DAR 把目录和文件打包成归档文件,并在此基础上提供 tar 通常不具备的能力:
- 完整、差分、增量备份:完整备份保存全部内容;差分备份保存相对上一次完整备份的变化;增量备份保存相对上一次任意备份的变化。这样重复备份时不必每次重写全部数据。
- 切片(slicing):可以把一个大归档拆成多个指定大小的文件,便于刻盘或分批传输。
- 压缩与加密:归档过程中可压缩,也可加密,适合备份需要保护的数据。
- 索引:归档内保留目录索引,列出内容和按路径恢复时不必顺序扫描整个归档。
- 隔离与恢复控制:可以只恢复归档中的部分路径,而不是整包展开。
需要说明的是,上述能力来自 DAR 作为磁盘归档工具的通用定位;具体某个版本支持哪些选项,以你所用版本的文档为准。
安装:源码包还是发行版仓库
官网 dar.linux.free.fr 给出两条主要获取路径。
方式一:发行版包管理器(最省事)
多数 Linux 发行版的仓库里有 dar 包,直接用系统包管理器安装即可,例如 Debian/Ubuntu 系用 apt、Fedora/RHEL 系用 dnf。这种方式会一并处理依赖,升级也跟随系统。缺点是仓库版本可能落后于官网最新分支。
方式二:官网源码 tarball
官网“Repositories”一节说明,源码以两种形式提供:打包好的 tarball 和 GIT 仓库。tarball 是可直接使用的发布代码,从 Sourceforge 或 dar.edrusb.org 获取,解包后按说明编译安装。GIT 仓库则包含开发、测试和不稳定代码,取用时必须注意自己拉的是哪个分支。官网还提到,部分平台提供带签名的静态链接二进制文件。
校验签名:官网“Authentication”一节明确说明,所有正式发布的源码包和二进制包都带有作者签名。下载后应校验签名,确认包未被篡改,再安装或编译。
基本用法
以下命令展示 DAR 的典型操作。选项名称在不同版本间可能略有差异,执行前可用 dar --help 或手册确认。
创建完整备份
dar -c backup_full -R /home/user/data
-c 指定归档名(DAR 会自动补上 .dar 后缀),-R 指定要归档的根目录。预期结果是当前目录下生成 backup_full.dar。
创建差分备份
dar -c backup_diff -R /home/user/data -A backup_full
-A 引用上一次完整备份作为基准,只保存此后发生的变化。恢复时需要完整备份和差分备份同时存在。
列出归档内容
dar -l backup_full
预期结果是打印归档内的文件与目录清单,用于确认备份是否包含预期内容。
恢复
dar -x backup_full -R /restore/path
-x 表示提取,-R 指定恢复到的目标目录。也可以只恢复归档中的某个子路径,避免整包展开。
验证:备份完成后用 dar -l 检查清单,或按文档使用测试/比较选项核对归档与源目录是否一致。定期做一次恢复演练,比只看备份日志更能确认备份可用。
常见卡点
- 把 GIT 仓库当稳定版用:GIT 里有开发中和不稳定的代码,直接拉取可能拿到未完成的功能。生产环境应使用 tarball 发布版或发行版仓库版本。
- 差分/增量备份的依赖关系:差分备份依赖它引用的完整备份,增量备份依赖上一次备份。丢失基准归档会导致后续备份无法完整恢复,规划时要保证整条链都保留。
- 归档体积与切片:大目录直接归档会生成很大的单文件。需要分批存放时,应在创建时就用切片选项,而不是事后拆分。
- 加密与密钥保管:加密归档一旦丢失密钥就无法恢复,密钥要与归档分开妥善保存。
- 签名校验被跳过:官网强调正式发布包均有签名,跳过校验等于放弃对下载内容的完整性确认。
版本与分支怎么选
官网把开发周期分为几个阶段,理解这些阶段有助于选版本:
| 阶段 | 含义 | 是否适合生产 |
|---|---|---|
| 开发阶段 | 代码按功能逐步加入和测试,属于不稳定、不受支持的代码 | 不适合 |
| API 冻结阶段 | 接口固定,主要工作是更新文档 | 谨慎,仍非正式发布 |
| 预发布阶段 | 密集测试稳定性,代码从此时起获得完整支持 | 可用于测试 |
| 发布阶段 | 代码稳定,已在多种环境验证 | 适合 |
| EoL(生命周期结束) | 宣告后维护还会持续约六个月到一年 | 应计划迁移 |
| Dead(死亡) | 不再维护,建议改用更新分支 | 避免使用 |
官网当前列出的分支包括 2.7.x(2.7.21,2026 年 5 月 1 日发布)、2.8.x(2.8.6,2026 年 8 月 19 日发布)和 2.9.x(开发中,2025 年 10 月 21 日启动)。选择时优先考虑处于发布阶段的分支;如果所在发行版仓库的版本已进入 EoL,应评估升级到更新分支。官网还说明,一个分支不会在下一个分支达到发布阶段第三步之前死亡,这可以作为判断旧分支是否还能继续用的参考。
一句话选择建议
只需要简单打包、不涉及增量备份,用 tar 即可;需要定期备份大目录、只保存变化部分、或要求切片、压缩、加密和索引,用 DAR,并从官网 tarball 或发行版仓库安装处于发布阶段的版本,下载后校验签名。