使用 MinIO 在 Linux 上备份与恢复
一 准备与环境
uname -m(常见为 x86_64 或 aarch64)mv mc /usr/local/bin/
chmod +x /usr/local/bin/mc
mc alias set minioA http://IP_A:9000 ACCESS_KEY_A SECRET_KEY_A
mc alias set minioB http://IP_B:9000 ACCESS_KEY_B SECRET_KEY_B
mc alias list
mc cp -r SRC DSTmc mirror SRC DSTmc sync SRC DST二 备份方案
# 备份整个服务(所有桶)
mc cp -r minioA /backup/minioA_$(date +%F)
# 备份单个桶
mc cp -r minioA/mybucket /backup/minioA_mybucket_$(date +%F)
# 按天保留,清理 7 天前
find /backup -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
/backup/),便于按“目录”语义处理;适合长期留存与灾备演练。# 全量镜像(首次)
mc mirror minioA minioB
# 持续镜像(加上 --overwrite 覆盖同名对象;可按需加 --watch 持续监听)
mc mirror --overwrite minioA minioB
# 只镜像某个桶
mc mirror --overwrite minioA/mybucket minioB/mybucket
--overwrite 用于重名覆盖;适合双活/异地容灾与快速回滚。# 全量
rsync -aAX --delete /var/lib/minio/ /backup/minio_data/full_$(date +%F)
# 增量(结合硬链接做快照式保留,示例思路)
rsync -aAX --link-dest=/backup/minio_data/full_2025-03-01 /var/lib/minio/ \
/backup/minio_data/incr_$(date +%F)
三 恢复方案
# 恢复整个备份到目标服务(注意源路径以 '/' 结尾)
mc cp -r /backup/minioA_2025-03-18/ minioB/
# 恢复到指定桶(可改名)
mc cp -r /backup/minioA_2025-03-18/mybucket/ minioB/recovered_mybucket/
# 将 minioB 回滚为 minioA 的当前状态
mc mirror --overwrite minioB minioA
# 只回滚某个桶
mc mirror --overwrite minioB/mybucket minioA/mybucket
--overwrite 可确保目标与源一致。# 先停服务
systemctl stop minio
# 用 rsync 回拷(示例)
rsync -aAX --delete /backup/minio_data/full_2025-03-18/ /var/lib/minio/
# 启动服务
systemctl start minio
四 自动化与最佳实践
# 每天 02:00 做全量冷备
0 2 * * * /usr/local/bin/mc cp -r minioA /backup/minioA_$(date +\%F) >/var/log/mc_backup.log 2>&1
# 每 15 分钟增量镜像到异地
*/15 * * * * /usr/local/bin/mc mirror --overwrite minioA minioB >>/var/log/mc_mirror.log 2>&1
mc ls -r、mc stat),并做小规模恢复演练,确保备份可用。以上流程覆盖对象级冷备、跨站点镜像与同机磁盘级备份三类常见场景,并提供自动化与演练建议,满足 Linux 环境下大多数 MinIO 备份与恢复需求。