使用MinIO进行数据备份的常用方法
MinIO Client(mc)是官方提供的命令行工具,支持数据复制、同步及备份,是最常用的备份方式之一。
linux-amd64),赋予执行权限并移动至系统路径:wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
<Endpoint>、<ACCESS_KEY>、<SECRET_KEY>为实际信息:mc alias set myminio http://minio-server:9000 ACCESS_KEY SECRET_KEY
mybucket桶的数据复制到本地/backup目录:mc cp -r myminio/mybucket /backup
mirror命令实现双向同步(包含新增、修改、删除操作),确保备份与源数据一致:mc mirror -w myminio/mybucket /backup
backupbucket):mc mirror myminio/mybucket myminio/backupbucket
rsync是Linux系统自带的文件同步工具,适合备份MinIO的数据目录(需确保MinIO服务暂停或数据不再变更)。
apt,CentOS/RHEL用yum):sudo apt install rsync # Debian/Ubuntu
sudo yum install rsync # CentOS/RHEL
/data)同步到备份目录(如/backup/minio):rsync -avz --progress /data /backup/minio
--delete选项删除备份目录中源目录不存在的文件,保持完全一致。若MinIO运行在Docker容器中,可通过备份数据卷实现数据保存。
docker stop minio-container
/data)复制到主机备份目录:docker cp minio-container:/data /backup/minio
docker start minio-container
通过MinIO的REST API编写脚本(如Python),实现自动化备份。
pip install minio
from minio import Minio
import os
# 配置MinIO客户端
client = Minio(
"minio-server:9000",
access_key="ACCESS_KEY",
secret_key="SECRET_KEY",
secure=False
)
# 创建备份目录
backup_dir = "/backup/minio"
os.makedirs(backup_dir, exist_ok=True)
# 列出桶中所有对象并下载
bucket_name = "mybucket"
objects = client.list_objects(bucket_name, recursive=True)
for obj in objects:
file_path = os.path.join(backup_dir, obj.object_name)
os.makedirs(os.path.dirname(file_path), exist_ok=True)
client.fget_object(bucket_name, obj.object_name, file_path)
第三方工具如restic、rclone支持MinIO兼容的S3 API,提供更灵活的备份功能(如加密、增量备份、云端存储)。
sudo apt install restic # Debian/Ubuntu
sudo yum install restic # CentOS/RHEL
restic init --repo /backup/restic-repo
restic -r /backup/restic-repo login
mybucket桶备份到restic仓库:restic -r /backup/restic-repo backup /backup/minio/mybucket
~/.config/rclone/rclone.conf,添加MinIO配置:[minio]
type = s3
provider = MinIO
endpoint = http://minio-server:9000
access_key_id = ACCESS_KEY
secret_access_key = SECRET_KEY
rclone copy minio:mybucket /backup/minio
若有多个MinIO实例,可通过跨区域复制(CRR)功能自动同步数据,实现异地备份。
backup-bucket)的复制规则。通过Linux的cron定时任务,定期执行备份脚本,确保数据定期保存。
/usr/local/bin/backup_minio.sh):#!/bin/bash
BACKUP_DIR="/backup/minio_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
mc mirror -w myminio/mybucket "$BACKUP_DIR"
chmod +x /usr/local/bin/backup_minio.sh
crontab -e,添加每天凌晨2点执行备份:0 2 * * * /usr/local/bin/backup_minio.sh
read权限)。mc ls查看备份文件,或尝试恢复部分数据)。mc mirror的增量同步功能,减少备份时间和存储占用。