使用 Duplicati 定时备份服务器资料
一、目录规划
本文使用以下目录:
1 | /opt/duplicati # Duplicati 自身配置以及 compose 文件 |
先创建目录:
1 | mkdir -p /opt/duplicati |
如果服务器中有数据库服务,可以额外约定一个子目录用于保存数据库导出文件,例如:
1 | /opt/duplicati/backup-staging/database |
二、生成 Duplicati 密钥
Duplicati 支持通过环境变量提供 SETTINGS_ENCRYPTION_KEY 和管理端密码。SETTINGS_ENCRYPTION_KEY 用于保护服务器数据库中的敏感设置;如果后续配置中已经存在被加密字段,启动时缺少这个 key,Duplicati 会拒绝启动。(docs.duplicati.com)
生成随机字符串:
1 | openssl rand -base64 48 | tr -d '\n'; echo |
创建环境变量文件:
1 | cat > /opt/docker/duplicati/.env <<'EOF' |
已配置的密钥
1 | X9ArFnYDQiPFRhOwjonxzd2wKv2wBG+8ZcyYgxZM0nHorkvw/g2gyh9rQH5MsEDs |
已配置的密码
1 | Zg123456 |
三、部署 Duplicati
LinuxServer 的 Duplicati 镜像常用挂载位如下:
/config:配置和状态数据/backups:本地备份目录/source:待备份源目录
创建 /opt/duplicati/docker-compose.yml:
1 | name: duplicati |
启动:
1 | cd /opt/duplicati |
如果日志里看到类似 Server has started and is listening on *, port 8200,说明服务已正常启动。
四、打开 Duplicati 管理界面
如果本机可直接访问服务器:
1 | http://服务器IP:8200 |
如果端口只绑定到 127.0.0.1,可以通过 SSH 转发访问:
1 | ssh -L 8200:127.0.0.1:8200 root@服务器IP |
浏览器打开:
1 | http://127.0.0.1:8200 |
五、创建备份任务
1. 基本信息
新建一个备份任务,设置:
- 名称:例如
server-backup - 加密:开启
- 备份口令:单独设置一条强密码,如选择加密,密码一定记好,忘记则无法恢复数据。
2. 目标端选择 WebDAV
目标类型选择 WebDAV。
示例:
- Server:
https://nas.example.com:5006 - Path on server:
/duplicati/server-backup - Username:你的 WebDAV 用户名
- Password:你的 WebDAV 密码
如果 NAS 使用 Digest 认证,可在高级选项中添加:
1 | --force-digest-authentication=true |
同时也支持绝大多数的网盘等渠道备份。
3. 选择源目录
在 Docker 部署下,Duplicati 只能看到容器内路径,不能直接使用宿主机路径。
如果 compose 中挂载了:
1 | - /opt:/source/opt:ro |
那么在 Duplicati 里应选择:
1 | /source/opt |
不要填写 /opt 这类宿主机路径。
4. 排除规则
建议至少排除以下路径:
1 | /source/opt/duplicati/** |
说明:
duplicati:避免把 Duplicati 自己的运行状态再次打包进主备份- 数据库相关目录:不直接纳入 Duplicati 主任务
如果数据库需要备份,建议提前用脚本导出到 /opt/backup-staging/database 之类的目录,再让 Duplicati 备份导出的结果文件。
5. 定时计划
按自己的需求设置执行时间即可。
如果服务器里有数据库,通常可以让数据库导出脚本先运行,再由 Duplicati 执行正式备份任务。
6. 保留策略
常见做法:
- 最近 7 天保留每天一份
- 最近 4 周保留每周一份
- 最近 12 个月保留每月一份
如果直接使用界面里的 Smart retention,这类规则可以在 UI 中完成。(docs.duplicati.com)
六、首次备份后的检查项
首次任务执行完成后,至少检查以下几项。
1. Duplicati 容器是否正常
1 | docker ps | grep duplicati |
2. NAS 上是否出现备份数据
到 NAS 的 WebDAV 目录中检查是否已生成 Duplicati 的备份集文件。
3. Duplicati 界面里是否能看到备份版本
进入任务详情页,确认已有可恢复的备份版本。
七、恢复方法
1. 恢复普通文件
在 Duplicati 中进入对应任务,点击 Restore,按时间点选择文件恢复到原位置或临时目录。
2. 恢复数据库
数据库不建议直接从在线数据目录恢复。更稳妥的方式是提前保存数据库导出文件,恢复时再按对应数据库的导入方式恢复。











