这两个方案是在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:快照ID
- target_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 地 址: 216.73.216.210
区 域 位 置: 美国加利福尼亚洛杉矶
系 统 信 息:
 
                      Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------




没有评论