服务器备份方案: xp-backup、backup-x

2024年02月2日

这两个方案是在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容器使用,此工具推荐给运维人员使用,小白请勿尝试!!!

  1. 已经安装Docker环境,并安装了Docker Compose工具
  2. 创建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

系统中使用

  • 下载并解压https://github.com/jeessy2/backup-x/releases

  • 安装服务

    • 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: ./backup-x -s uninstall
    • Win(打开cmd): .\backup-x.exe -s uninstall
  • 登录 http://127.0.0.1:9977 并配置


sicnature ---------------------------------------------------------------------
I P 地 址: 3.135.220.219
区 域 位 置: 美国
系 统 信 息: 美国
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://myzhenai.com.cn/post/4433.html

没有评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注