1. 准备工作:安装MinIO客户端(mc)
在Linux系统上,首先需要安装MinIO官方提供的命令行工具mc
(MinIO Client),用于管理MinIO对象存储。可以通过以下命令快速安装:
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
安装完成后,可通过mc --version
验证是否安装成功。
2. 配置MinIO客户端连接
使用mc alias set
命令配置MinIO服务器的访问信息,方便后续操作:
mc alias set myminio http://minio-server-ip:9000 ACCESS_KEY SECRET_KEY
myminio
:自定义的别名(用于后续命令中的服务器标识);http://minio-server-ip:9000
:MinIO服务器的地址(若为HTTPS需替换为https
);ACCESS_KEY
/SECRET_KEY
:MinIO创建的用户凭证(需提前在MinIO控制台生成)。3. 常用备份方法
mc cp
命令复制数据mc cp
是MinIO最基础的备份命令,可将MinIO中的桶(Bucket)或对象(Object)复制到本地文件系统或其他存储路径。
mc cp -r myminio/source-bucket /path/to/backup/location
-r
参数表示递归复制,会将source-bucket
中的所有对象及子目录复制到本地的/path/to/backup/location
目录。mc ls
命令循环处理:mc ls myminio | grep "^\S" | awk '{print $1}' | while read bucket; do
mc cp -r "myminio/$bucket" "/path/to/backup/location/$bucket"
done
该脚本会列出myminio
中的所有桶,并逐个复制到本地备份目录。mc mirror
命令同步数据mc mirror
用于双向同步两个存储路径(如MinIO桶与本地目录),适合需要保持数据实时一致性的场景。它会复制源中新增或修改的对象,并删除目标中源不存在的对象。
mc mirror myminio/source-bucket /path/to/backup/location
执行后,source-bucket
与本地目录的数据将完全一致。
mc sync
命令增量同步mc sync
仅复制源中新增或修改的对象,不会删除目标中的现有对象,适合定期增量备份。
mc sync myminio/source-bucket /path/to/backup/location
该命令会对比源与目标的数据差异,仅传输变化的部分,节省时间和带宽。
4. 自动化备份:结合Cron定时任务
为避免手动执行备份,可通过Linux的cron
定时任务自动运行备份脚本。
/usr/local/bin/backup_minio.sh
):#!/bin/bash
# 配置MinIO客户端
mc alias set myminio http://minio-server-ip:9000 ACCESS_KEY SECRET_KEY
# 定义备份目录
BACKUP_DIR="/path/to/backup/location"
mkdir -p "$BACKUP_DIR"
# 备份所有桶
mc ls myminio | grep "^\S" | awk '{print $1}' | while read bucket; do
mc cp -r "myminio/$bucket" "$BACKUP_DIR/$bucket"
echo "$(date): Backup completed for bucket $bucket" >> /var/log/minio_backup.log
done
脚本会自动备份所有桶,并将执行日志记录到/var/log/minio_backup.log
。chmod +x /usr/local/bin/backup_minio.sh
crontab -e
,添加以下行(每天凌晨2点执行备份):0 2 * * * /usr/local/bin/backup_minio.sh
保存后,Cron会自动按计划执行备份。5. 高级备份:使用MinIO快照功能
MinIO支持创建存储桶快照,这是一种更高效的备份方式,可快速恢复数据到指定时间点。
mc admin snapshot create myminio/source-bucket@snapshot-20250927
snapshot-20250927
为快照名称(可自定义),创建后会生成该桶的只读副本。mc admin snapshot restore myminio/source-bucket@snapshot-20250927
恢复后,source-bucket
将回到快照创建时的状态。6. 注意事项
mc ls
查看备份目录中的对象,或尝试恢复部分数据)。