backup-x数据库/文件备份工具
backup-x 是一款带 Web 界面的数据库/文件备份增强工具。
原理:执行自定义 shell 命令输出文件,增强备份功能。
同时支持: 文件、mysql、postgres...
- 支持自定义命令
- 支持执行shell输出的文件备份,原理上支持各种数据库/文件备份
- 支持备份周期设置,几分钟到一年的备份周期也可以
- 支持多个项目备份,最多16个
- 支持备份后的文件另存到对象存储中 (再也不怕删库跑路了)
- 可设置备份文件最大保存天数
- webhook通知
docker 中使用
- 运行 docker 容器(
/opt/backup-x-files可替换为主机的目录)
docker run -d --name backup-x --restart=always \
-p 9977:9977 \
-v /opt/backup-x-files:/app/backup-x-files \
jeessy/backup-x
- 登录 http://your_docker_ip:9977 并配置
系统中使用
-
安装服务
- Mac/Linux:
./backup-x -s install - Win(打开cmd):
.\backup-x.exe -s install - 自定义参数
./backup-x -s install -l 127.0.0.1:9977 -d /Users/name
-
-l监听地址(默认监听:9977) -
-d自定义备份目录地址(默认当前运行目录)
-
- Mac/Linux:
-
[可选] 服务卸载
- Mac/Linux:
./backup-x -s uninstall - Win(打开cmd):
.\backup-x.exe -s uninstall
- Mac/Linux:
-
登录 http://127.0.0.1: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
-
文件
说明
备份脚本
tar压缩备份
tar -zcvf #{DATE}.tar.gz /home/projects
还原
tar -zxvf 2021-11-12_10_29.tar.gz
webhook
-
支持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}"}}
说明
- 从 backup-db 发展而来,发现不仅仅支持数据库备份,所以改名 backup-x,备份届的 iphone-x
评论
