网站首页 > 教程文章 正文
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还是值得一试的。
关注我们,获取更多开源项目推荐和技术干货!
如果您有其他喜欢的开源工具,欢迎在评论区分享,让我们一起探索更多好用的技术宝藏!
- 上一篇: 喂饭教程-百图教会你基于Hyper-v创建Docker环境
- 下一篇:已经是最后一篇了
猜你喜欢
- 2025-05-28 喂饭教程-百图教会你基于Hyper-v创建Docker环境
- 2025-05-28 腾讯云国际站:如何实现镜像全球同步?
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)