推荐使用 https://github.com/jeessy2/backup-x backup-x从backup-db发展而来,不仅仅支持数据库备份,所以改名到backup-x
数据库备份工具 English
原理:Docker容器中安装postgres-client和mysql-client,并加入本备份工具,增强备份功能。
- 支持自定义命令
- 网页中配置,简单又方便
- 支持多个项目备份,最多16个
- 支持备份后的文件另存到对象存储(在也怕硬盘坏了)
- 每日凌晨自动备份
- 可设置备份文件最大保存天数
- 可设置登陆用户名密码,默认为空
- webhook通知
- 运行docker容器
docker run -d \ --name backup-db \ --restart=always \ -p 9977:9977 \ -v /opt/backup-db-files:/app/backup-db-files \ jeessy/backup-db
- 登录 http://your_docker_ip:9977 并配置
-
postgres
说明 备份脚本 备份单个 PGPASSWORD="password" pg_dump --host 192.168.1.11 --port 5432 --dbname db-name --user postgres --clean --create --file #{DATE}.sql 备份全部 PGPASSWORD="password" pg_dumpall --host 192.168.1.11 --port 5432 --user postgres --clean --file #{DATE}.sql 还原 psql -U postgres -f 2021-11-12_10_29.sql -
mysql/mariadb
说明 备份脚本 备份单个 mysqldump -h192.168.1.11 -uroot -p123456 db-name > #{DATE}.sql 备份全部 mysqldump -h192.168.1.11 -uroot -p123456 --all-databases > #{DATE}.sql 还原 mysql -uroot -p123456 db-name <2021-11-12_10_29.sql
-
支持webhook, 备份更新成功或不成功时, 会回调填写的URL
-
支持的变量
变量名 说明 #{projectName} 项目名称 #{fileName} 备份后的文件名称 #{fileSize} 文件大小 (MB) #{result} 备份结果(成功/失败) -
RequestBody为空GET请求,不为空POST请求
-
Server酱:
https://sc.ftqq.com/[SCKEY].send?text=#{projectName}项目备份#{result},文件名:#{fileName},文件大小:#{fileSize}
-
Bark:
https://api.day.app/[YOUR_KEY]/#{projectName}项目备份#{result},文件名:#{fileName},文件大小:#{fileSize}
-
钉钉:
- 钉钉电脑端 -> 群设置 -> 智能群助手 -> 添加机器人 -> 自定义
- 只勾选
自定义关键词
, 输入的关键字必须包含在RequestBody的content中, 如:项目备份
- URL中输入钉钉给你的
Webhook地址
- RequestBody中输入
{"msgtype": "text","text": {"content": "#{projectName}项目备份#{result},文件名:#{fileName},文件大小:#{fileSize}"}}
- v1版本开始发生重要变化,不兼容0.0.x
- v1后开始使用web方式来配置
- 如要加入https,可通过nginx代理
- v2版本后,一个镜像同时支持postgres/mysql