上一篇杜老师分享了 MySQL 备份脚本,在留言中,有小伙伴推荐了 GoBackup 数据库备份工具。简单了解之后发现这款工具确实不错,简单易用,一次部署后能持续运行数年无需任何维护,存储成本低且安全可靠。
工具特性
没有依赖关系。
多数据库支持。
支持多种存储类型。
将路径或文件归档到压缩包。
将大型备份文件拆分为多个部分。
作为守护程序运行以按计划进行备份。
用于管理备份的 Web UI。
支持类型
支持的数据库类型如下:
编号 | 名称 |
---|
1 | MySQL |
2 | PostgreSQL |
3 | Redis |
4 | MongoDB |
5 | SQLite |
6 | Microsoft SQL Server |
7 | InfluxDB |
8 | MariaDB |
存储类型
支持存储类型如下:
编号 | 名称 |
---|
1 | 本地 |
2 | FTP |
3 | SFTP |
4 | SCP - Upload via SSH copy |
5 | Amazon S3 |
6 | Aliyun OSS |
7 | Google Cloud Storage |
8 | Azure Blob Storage |
9 | Backblaze B2 Cloud Storage |
10 | Cloudflare R2 |
11 | DigitalOcean Spaces |
12 | QCloud COS |
13 | UCloud US3 |
14 | Qiniu Kodo |
15 | Baidu BOS |
16 | MinIO |
17 | Huawei OBS |
18 | Volcengine TOS |
19 | UpYun |
20 | WebDAV |
通知途径
备份通知类型如下:
编号 | 名称 |
---|
1 | Mail (SMTP) |
2 | Webhook |
3 | Discord |
4 | Slack |
5 | Feishu |
6 | DingTalk |
7 | GitHub (Comment on Issue) |
8 | Telegram |
9 | AWS SES |
10 | Postmark |
11 | SendGrid |
安装配置
执行下面安装命令,即可使用 gobackup
进行数据库备份:
1
| curl -sSL https://gobackup.github.io/install | sh
|
创建并编辑配置文件/etc/gobackup/gobackup.yml
,模板内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| models: gitlab_app: databases: gitlab_db: type: postgresql database: gitlab_production username: gitlab password: gitlab_redis: type: redis mode: sync rdb_path: /var/db/redis/dump.rdb invoke_save: true storages: s3: type: s3 bucket: my_app_backup region: us-east-1 path: backups access_key_id: $S3_ACCESS_KEY_Id secret_access_key: $S3_SECRET_ACCESS_KEY compress_with: type: tgz
|
使用方法
如需备份,使用下面命令即可:
如需命令完整路径,可调用/usr/local/bin/gobackup
。分享一个实例配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| models: my_backup: before_script: | echo "Before script" after_script: | echo "After script" schedule: # At 04:05 on Sunday. cron: "5 4 * * sun" storages: local: type: local path: /path/to/backups databases: mysql: type: mysql host: localhost port: 3306 database: my_database username: root password: password other_backup: # At 04:05 on every day. schedule: every: "1day", at: "04:05" storages: local: type: local path: /path/to/backups databases: mysql: type: mysql host: localhost port: 3306 database: my_database username: root password: password
|
该工具支持 Web UI,如需启动可执行下面的命令:
访问 http://IP:2703
就行了:
条评论