这两个方案是在hostloc上看到的,所以做他收藏备份。
xp-backup项目地址:https://github.com/helloxz/xp-backup
backup-x项目地址:https://github.com/jeessy2/backup-x
xp-backup项目介绍
基于Docker容器的备份方案,使用restic工具定期将您的MySQL数据库和文件加密备份到AWS S3。
特性
- 加密备份
- 增量备份
- 自动备份MySQL数据库
- 支持添加多个备份路径
- 支持路径排除
- 支持快捷命令查看备份列表(快照)
- 支持快捷命令自动恢复指定备份(快照)
安装使用
在使用之前,请确保您熟悉Linux并掌握了Docker容器使用,此工具推荐给运维人员使用,小白请勿尝试!!!
- 已经安装Docker环境,并安装了Docker Compose工具
- 创建
docker-compose.yaml
文件,内容为:
version: '3' services: xp-backup: image: helloz/xp-backup container_name: xp-backup restart: always environment: - PATH=/opt/xp-backup:$PATH volumes: - ./data:/opt/xp-backup/data - /data/apps:/opt/xp-backup/backup/apps - /data/backup/mysql:/opt/xp-backup/backup/mysql network_mode: "host"
如果您有更多需要备份的目录,可以继续添加挂载,需要挂载到容器内部的/opt/xp-backup/backup
目录下,比如:
/test1/dir:/opt/xp-backup/backup/test1
/test2/dir:/opt/xp-backup/backup/test2
输入命令docker-compose up -d
启动容器,启动完毕后回在您本地挂载目录./data
下生成2个隐藏文件,分别是:
.env
:环境变量文件.restic_pass
: restic密码文件(加密备份和解密需要)
您可以输入命令ls -al
来查看这2个文件,首次运行后自动生成这2个文件,然后停止容器,并对这2个文件做出修改,修改完毕后再次启动容器。
.env
环境变量说明:
# MySQL连接地址 DB_HOST=127.0.0.1 # MySQL用户名 DB_USER=root # MySQL密码 DB_PASSWORD=xxx #需要排除的数据库,用|分割 DB_EXCLUDE="test|mysql|information_schema|sys" # AWS_ACCESS_KEY_ID AWS_ACCESS_KEY_ID=xxx # AWS_SECRET_ACCESS_KEY AWS_SECRET_ACCESS_KEY=xxx # AWS_S3_URL,格式如:s3.us-west-002.backblazeb2.com AWS_S3_URL=s3.us-west-002.backblazeb2.com # AWS_BUCKET_NAME,存储桶名称 AWS_BUCKET_NAME="bucket_name" #restic密码,用于加密备份和解密恢复,一旦设置不要修改 RESTIC_PASSWORD="xp_backup_password" #需要排除的目录,多个目录使用空格分割,比如:--exclude=dir1 --exclude=dir2 EXCLUDE_DIRS='--exclude=default' # 定时备份MySQL的时间,默认每天凌晨2点 CRON_TIME_MYSQL="0 2 * * *" # 定时备份文件夹的时间,默认每天凌晨3点 CRON_TIME_DIR="0 3 * * *"
.restic_pass 密码文件
需要自行设置一个复制的字符串,默认为:xp_backup_password
,一旦设置后,请不要随意修改。
.env
和.restic_pass
设置完毕后,输入命令:docker-compose restart
重启一次容器,至此已经全部设置完毕,容器将根据您的定时任务定期将MySQL数据库和文件数据加密备份至AWS S3
常用命令
- 立即备份MySQL:
docker exec -it xp-backup backup_mysql.sh
- 立即备份文件数据:
docker exec -it xp-backup restic_backup.sh
- 查看备份列表:
docker exec -it xp-backup tool.sh list
- 清理并保留最近60个快照:
docker exec -it xp-backup tool.sh clear
- 将指定快照恢复到指定目录下:
docker exec -it xp-backup tool.sh restore snapshot_id target_path
snapshot_id
:快照IDtarget_path
:目标路径(将数据恢复到这个路径)
backup-x项目介绍
带Web界面的数据库/文件备份增强工具。原理:执行自定义shell命令输出文件,增强备份功能。同时支持: 文件、mysql、postgres… English
- 支持自定义命令
- 支持执行shell输出的文件备份,原理上支持各种数据库/文件备份
- 支持备份周期设置,几分钟到一年的备份周期也可以
- 支持多个项目备份,最多16个
- 支持备份后的文件另存到对象存储中 (在也不怕删库跑路了)
- 可设置备份文件最大保存天数
- webhook通知
- 支持加密关键信息(v1.3.0+)
docker中使用
运行docker容器(/opt/backup-x-files
可替换为主机的目录)
# 默认启动rclone的配置会保存到/app/backup-x-files/rclone/rclone.conf: 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 并配置
- docker容器默认安装default-mysql-client/postgres-client/s3sync/rclone/wget/curl/minio mc
系统中使用
-
安装服务
- 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 并配置
sicnature ---------------------------------------------------------------------
I P 地 址: 3.238.82.77
区 域 位 置: 美国弗吉尼亚阿什本
系 统 信 息:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
没有评论