需求背景
飞牛OS目前仅提供基于 rsync 或网盘直传的备份,缺少“块级去重 + 加密 + 压缩 + 版本控制”的企业级备份能力。用户需要把大量照片/视频安全地异地存档,同时节省带宽与存储。
期望功能
A. 官方套件
- 套件名称:FNBorg(或沿用 BorgBackup)
- 组件:
- borg 1.2.x 可执行文件
- systemd timer 模板
- Web UI 配置页
B. Web UI 配置项
| 配置类别 |
功能细节 |
| 仓库管理 |
新建/初始化仓库:本地目录、USB 硬盘、SSH 远端、S3 兼容对象存储 |
| 备份源 |
可视化勾选共享文件夹(如 /Photos、/homes) |
| 压缩算法 |
下拉框:off / lz4 / zstd,3-19 / zlib,6-9 |
| 加密方式 |
repokey-blake2 / keyfile-blake2;支持密码+密钥文件双因子 |
| 保留策略 |
按日/周/月/年保留份数;一键 prune |
C. 触发机制
- 定时:支持 cron 表达式
- 实时:监听 inotify/kevent,目录新增文件 30 s 后自动增量备份
- 事件:USB 硬盘插入后立即执行离线备份,完成后 LED 绿灯提示安全弹出
D. 运行监控
E. 一键恢复
- Web 端浏览任意存档
- 按文件或目录下载、挂载只读、整卷回滚
技术约束与兼容性
- 依赖:Python 3.8+、OpenSSL 1.1+、libacl、liblz4、libzstd
- 文件系统:Btrfs/ZFS 原生快照可选,ext4 亦可
- 远程协议:SSH (
borg serve)、rclone (S3/WebDAV/SFTP)
默认安全策略
- 仓库默认启用 repokey-blake2 加密
- 强制提示用户导出密钥并异地保管
borg serve 限制为 只追加写权限,防止勒索病毒删除历史块
迁移/共存方案
- 与现有 rsync/CloudSync 任务 并行运行,无冲突
- 提供“导入现有 borg repo”向导
用户场景举例
- 家庭相册每晚 02:00 增量备份到本地 USB,周末推送至朋友家 NAS 或 S3 归档
- 小型工作室
每天 10 次快照,保留 30 天,异地 S3 Glacier Deep Archive 长期归档
参考链接