pgbackweb 实测:带 Web 界面的 PostgreSQL 备份神器,告别手动写 crontab
pgbackweb 是一个带用户友好 Web 界面的 PostgreSQL 备份工具,GitHub 上 2.6k 星。我用它管理了三个项目的 Postgres 备份,说说它为什么比传统方案省心。
广告
pgbackweb 实测:带 Web 界面的 PostgreSQL 备份神器,告别手动写 crontab
我维护过好几个用 PostgreSQL 的项目,备份一直是个头疼的事。最早用 pg_dump 写 shell 脚本 + crontab,后来换到 pgBackRest,功能强大但配置复杂得像在考证书。直到发现 pgbackweb,才终于找到一个既简单又有界面的备份方案。
项目背景
pgbackweb 由 eduardolat 开发,用 Go 语言写成,定位是” effortless PostgreSQL backups with a user-friendly web interface”。GitHub 上 2.6k 星,虽然 stars 不算多,但功能扎实、更新积极(最近更新 2025 年 11 月)。
License 是 MIT,你可以自由部署和修改。它本质上是一个调度层 + Web UI,底层还是调用 pg_dump,但把配置、监控、恢复这些操作全部可视化了。
它到底强在哪
1. 真正的零配置启动
如果你用 Docker,一条命令就能跑起来:
docker run -d \
-p 8085:8085 \
-v pgbackweb_data:/app/data \
eduardolat/pgbackweb
然后浏览器打开 localhost:8085,就能看到一个干净的 Web 界面。添加数据库连接、设置备份计划、指定存储位置,全部点几下鼠标搞定。
对比我以前的方案:先写 pg_dump 脚本,再配 cron,再写监控告警,再搭日志收集……一套下来至少半天。pgbackweb 十分钟就能上线。
2. 支持多种存储后端
备份文件默认存本地,但也支持 S3、MinIO、SFTP 等远程存储。我测试了 S3 兼容的对象存储,配置 Access Key 和 Bucket 名称后直接可用。
# docker-compose 示例
services:
pgbackweb:
image: eduardolat/pgbackweb
ports:
- "8085:8085"
environment:
- PBW_ENCRYPTION_KEY=your-secret-key
- PBW_S3_ENDPOINT=s3.amazonaws.com
- PBW_S3_BUCKET=my-backups
- PBW_S3_ACCESS_KEY=xxx
- PBW_S3_SECRET_KEY=xxx
对于有多环境部署需求的团队,把备份统一存到 S3 非常方便管理和审计。
3. 增量备份和自动清理
pgbackweb 支持按策略自动清理旧备份。你可以设置”保留最近 7 个每日备份 + 最近 4 个每周备份 + 最近 12 个每月备份”,旧文件会自动删除,不用担心磁盘被撑爆。
增量备份基于 pg_dump 的自定义格式 + 时间戳,虽然不是真正的 WAL 增量,但对于大多数应用场景已经够用了。如果你需要 Point-in-Time Recovery(PITR),那还是得上 pgBackRest 或 Barman。
4. Web 界面直观好用
Dashboard 上能看到所有数据库的备份状态:上次备份时间、文件大小、是否成功。失败的任务会标红,点进去能看到完整的 pg_dump 输出日志,排障很方便。
恢复操作也在界面里完成:选一个历史备份点,点”Restore”,它会自动执行 pg_restore 并显示进度。不用记复杂的命令行参数,新手也能操作。
5. 加密支持
备份文件可以用 AES-256 加密,密钥通过环境变量注入。即使备份文件泄露,没有密钥也解不开。这对于存了敏感数据的数据库来说很重要。
怎么快速跑起来
Docker Compose 是最推荐的方式:
version: '3.8'
services:
pgbackweb:
image: eduardolat/pgbackweb:latest
container_name: pgbackweb
restart: unless-stopped
ports:
- "8085:8085"
volumes:
- ./backups:/app/backups
environment:
- PBW_ENCRYPTION_KEY=change-me-to-a-strong-key
docker-compose up -d
然后访问 http://localhost:8085,按向导添加你的 PostgreSQL 连接信息即可。
如果是裸机部署,项目 releases 页面提供了各平台的二进制文件,下载后直接运行:
./pgbackweb
但它也不是完美的
只支持 PostgreSQL。如果你同时用 MySQL、MongoDB、Redis,得另外找工具。pgbackweb 专注做好一件事,不追求大而全。
不是真正的增量备份。它做的是周期性全量 pg_dump,而不是基于 WAL 的增量备份。对于 TB 级大库,每次全量导出可能很慢,占用带宽和 I/O。中小型项目没问题,超大规模数据库建议用 pgBackRest。
认证功能比较基础。目前只有简单的密码登录,没有多用户、RBAC 权限管理。团队协作场景下,谁都能登录操作备份和恢复,安全性靠网络隔离和密码强度来补。
Web UI 功能还在完善中。一些高级功能(比如自定义 pg_dump 参数、备份前后钩子脚本)目前还不支持。如果你需要很细粒度的控制,还是得回命令行。
社区规模小。2.6k 星意味着遇到问题时,Stack Overflow 上的现成答案不多,主要靠 GitHub Issues 和文档。好在作者响应挺积极,我提过一个 bug,三天就修了。
跟同类工具比
pgBackRest:功能最强,支持增量备份、PITR、并行备份、加密压缩。但配置极其复杂,学习曲线陡峭。适合大型生产环境,不适合想”快速搞定备份”的人。
Barman:PostgreSQL 官方推荐的备份工具之一,功能全面但同样复杂,需要专门的服务器和配置。
pg_dump + cron:最原始的方式,零依赖但全是手动操作。没有监控、没有界面、恢复时要翻文档找命令,时间长了很容易出错。
Cloud Provider 自动备份(AWS RDS、GCP Cloud SQL):省心,但贵,而且把数据锁在厂商生态里。自建 PostgreSQL 或者用云服务器自管数据库的场景不适用。
如果你要的是”简单、有界面、能快速跑起来”,pgbackweb 是目前最好的选择。
谁适合用
中小型项目的开发者、个人开发者、小团队运维、或者任何不想在数据库备份上花太多时间的人。特别是用 Docker 部署 PG 的场景,pgbackweb 几乎是无缝接入。
我现在三个项目都用它管备份:一个 SaaS 产品、一个内部工具、一个博客系统。每天早上打开 Dashboard 看一眼绿色的小勾,就知道昨晚备份没问题,这种安心感是手动脚本给不了的。
总结
pgbackweb 的 2.6k 星虽然不算多,但它精准解决了一个痛点:让 PostgreSQL 备份变得简单且可视化。对于不想啃 pgBackRest 文档、又受够了手动写 cron 的人来说,它是个恰到好处的工具。
它不是企业级备份的银弹,但可能是 90% 中小型项目最需要的那个备份方案。十分钟部署,然后忘记它——直到你需要恢复数据的那一天。
GitHub: https://github.com/eduardolat/pgbackweb
关于作者
柳钉鱼,全栈开发者,GitHub 重度用户。过去 3 年 Star 了 900+ 仓库,这里只写我真正用过或深度调研过的工具。
📧 发现好工具想推荐?发邮件到 [email protected]
广告