云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

推荐开源项目 GoBackup:一站式备份神器,简单高效守护数据安全

jxf315 2025-05-28 18:15:29 教程文章 10 ℃

GoBackup 是什么

GoBackup 是一个基于 Go 语言开发的一站式备份工具,灵感来源于 Ruby 的 backup/backup 项目,但去除了 Ruby 依赖,更加轻量易用。它通过简单的配置文件,让用户可以一键完成数据库、文件的导出、压缩和备份,支持多种存储方式,包括本地磁盘、FTP、SCP、Amazon S3、阿里云 OSS 等云存储。无论是个人开发者还是中小型企业,GoBackup 都能满足多样化的备份需求。

  • o 项目地址:https://github.com/huacnlee/gobackup
  • o 文档手册:https://gobackup.github.io/

为什么选择 GoBackup

  • o 简单易用,配置直观

GoBackup 采用 YAML 配置文件,只需几行配置,就能定义备份的数据库、文件路径和存储目标。例如,以下是一个备份 MySQL 数据库到本地磁盘的配置示例:

models:
  my_app:
    schedule:
      # At 04:05 on Sunday.
      cron:"5 4 * * sun"
    compress_with:
      type:tgz
    storages:
      local:
        type:local
        keep:20
        path:/data/backups
    databases:
      my_app:
        database:my_app_production
        type:mysql
        host:localhost
        port:3306
        username:root
    archive:
      includes:
        -/var/www/my_app/uploads
        - /var/www/my_app/shared/ssl

配置完成后,运行 gobackup perform,即可完成备份,很简单的

  • o 支持多种数据库和存储方式

支持主流数据库,包括 MySQL、PostgreSQL、Redis、MongoDB 等,同时兼容多种存储后端,从本地磁盘到云存储一应俱全。无论是将备份文件存到对象存储MinIO,还是通过 SCP 传输到远程服务器,GoBackup 都能轻松搞定。我主要用于备份博客Solitudes[1]的PG数据库、k3s集群的MySQL,恢复起来简单。

  • o 内置定时任务,自动化备份
  • o 消息通知种类挺多的,我主要使用飞书机器人
  • o Web UI 界面,操作更友好

提供了一个简洁的 Web 界面,只需运行 gobackup start,即可通过浏览器访问 http://127.0.0.1:2703,查看备份状态、管理任务,特别适合不熟悉命令行的用户

  • o 开源免费

快速上手 GoBackup

支持docker方式,但是我更推荐二进制方式部署

镜像

  • o huacnlee/gobackup:latest
  • o ccr.ccs.tencentyun.com/k7scn/gobackup:latest
mkdir gobackup
touch gobackup/gobackup.yml
docker run -d --name gobackup -v $(pwd)/gobackup:/etc/gobackup -p 2703:2703 huacnlee/gobackup:latest

一键脚本

curl -sSL https://gobackup.github.io/install | sh

安装完成后,运行gobackup -v检查版本,确保安装成功

配置

后续主要讲宿主机二进制部署

编辑默认配置文件~/.gobackup/gobackup.yml,根据需求设置数据库、文件路径和存储目标

运行

  • o 手动备份:gobackup perform
  • o 启动守护进程:gobackup start(支持 Web UI 和定时任务)
  • o 前台运行:gobackup run(适合调试)

示例配置

我的个人配置仅供参考

# .gobackup/gobackup.yml
web:
  host: 0.0.0.0
  # port: 2703
  username: ysicing
  password: ysicing

models:
  solitudes-prod:
    description: "backup solitudes prod db"
    schedule:
      cron: "*/120 * * * *"
    databases:
      solitudes:
        type: postgresql
        host: 10.25.25.25
        port: 5432
        database: aaL3Aith
        username: Cing2aeB
        password: eexoo9aecuaGeech0Ahf9ieXuch8za3ailoo4ahj8oi7
#        args: --if-exists --no-owner
    default_storage: minio
    storages:
      minio:
        type: minio
        bucket: gobackup
        endpoint: http://100.90.80.80:9000
        path: /prod/pg/blog
        access_key_id: ooM8NahY6wei3miedoux1Geerah0aiTo
        secret_access_key: dee2goen1eiluw6biez1paiwes2Peiye
      local:
        type: local
        path: /data/backups/blog/prod
        keep: 10
    notifiers:
      feishu:
        type: feishu
        url: https://open.feishu.cn/open-apis/bot/v2/hook/******
    compress_with:
      type: tgz

总结

GoBackup还是值得一试的。

关注我们,获取更多开源项目推荐和技术干货!
如果您有其他喜欢的开源工具,欢迎在评论区分享,让我们一起探索更多好用的技术宝藏!

最近发表
标签列表