当前位置: 首页 > news >正文

使用MC工具同步MinIO

通过docker部署的相关服务

一、确定服务器ip

  • Node A:11.16.212.196
  • Node B:11.16.212.197

二、确保两台服务器已安装 MinIO 并运行

docker ps

三、部署mc工具(两台都要)

1.下载mc工具:

MinIO Downloads

2.上传MC

#到根目录

cd /

#进到opt文件夹

cd opt

#创建文件夹

mkdir deploy

# 把下载的文件上传到deploy文件夹下

# 请将下方命令中的 "mc.RELEASE.2025-08-13T08-35-41Z" 替换为您实际的文件名

mv /opt/deploy/mc.RELEASE.2025-08-13T08-35-41Z /opt/deploy/mc

# 赋予执行权限

chmod +x /opt/deploy/mc

# 创建软链接到系统路径,方便全局调用

sudo ln -s /opt/deploy/mc /usr/local/bin/mc

#验证安装

mc --version

# 正常应输出版本信息,例如: mc version RELEASE.2025-08-13T08:35:41Z

四、配置mc别名(按节点分别配置)

Node A (11.16.212.196)

# 设置本地别名为自己的IP,远程别名为对端IP

mc alias set local http://11.16.212.196:9000 minioadmin minioadmin

mc alias set remote http://11.16.212.197:9000 minioadmin minioadmin

Node B (11.16.212.197)

# 设置本地别名为自己的IP,远程别名为对端IP

mc alias set local http://11.16.212.197:9000 minioadmin minioadmin

mc alias set remote http://11.16.212.196:9000 minioadmin minioadmin

验证别名

# 列出本地的桶
/opt/deploy/mc ls local/

# 列出远端的桶
/opt/deploy/mc ls remote/

遇见问题:出现了别名混淆的问题,执行完上面命令使用下面命令检查是否有重复(都要执行)

mc ls local # 应该能列出本地的buckets

mc ls remote # 应该能列出服务器的buckets

验证是否有local_minio和remote_minio

删除旧别名

/usr/local/bin/mc alias remove local_minio
/usr/local/bin/mc alias remove remote_minio

五、创建同步脚本

两台服务器均执行:

cat << 'SCRIPT' > /opt/deploy/sync.sh #!/bin/bash set -e MC="/opt/deploy/mc" LOG_FILE="/var/log/minio_sync.log" # 文件锁,防止并发 exec 200>/tmp/minio_sync.lock if ! flock -n 200; then exit 0 fi echo "[$(date '+%F %T')] 开始同步 local → remote ..." >> "$LOG_FILE" BUCKETS=$(${MC} ls local/ 2>/dev/null | awk '{print $5}' | sed 's#/##') if [ -z "$BUCKETS" ]; then echo "[$(date '+%F %T')] 没有桶需要同步" >> "$LOG_FILE" exit 0 fi for bucket in $BUCKETS; do ${MC} ls remote/$bucket >/dev/null 2>&1 || ${MC} mb remote/$bucket ${MC} mirror --overwrite --preserve local/$bucket remote/$bucket >> "$LOG_FILE" 2>&1 done echo "[$(date '+%F %T')] 同步完成" >> "$LOG_FILE" SCRIPT

脚本说明

特性说明
无需 VIP 检测两台各自直接往对方推送,实现双向同步
文件锁防止 cron 多次触发导致并发冲突
自动建桶远端缺少桶时自动创建
全量 mirror--overwrite覆盖同名对象,--preserve保留时间戳
日志输出到/var/log/minio_sync.log

#赋予权限

chmod +x /opt/deploy/sync.sh

确认 mc 路径(关键!)

which mc

# 如果输出不是 /usr/local/bin/mc,请立即修正:

# sed -i 's|MC_PATH="/usr/local/bin/mc"|MC_PATH="你的实际路径"|' /opt/deploy/sync.sh

六、手动运行与验证

两台服务器都要执行:

#执行脚本

/opt/deploy/sync.sh

# 查看日志
tail -f /var/log/minio_sync.log

执行完成后查看两边的照片是否同步

七、配置定时任务

两台服务器均执行:

crontab -e

添加进去

#定时任务

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
*/5 * * * * /opt/deploy/sync.sh >/dev/null 2>&1

保存退出(:wq

验证:

crontab -l

输入配置信息

http://www.zskr.cn/news/1537154.html

相关文章:

  • 苏州靠谱宠物店实地测评,买猫买狗优选门店参考 - 园友3800037
  • 智能体RAG客服系统4——middleware部分开发与agent主体开发
  • 2026年保洁外包选型指南:代表性服务商深度解析,优质保洁外包推荐 - 速递信息
  • 国内二维过渡金属碳化物MXene品牌综合实力排行 - 奔跑123
  • 从零实现一个 Web 搜索 MCP 插件
  • 2026最新救命贴:Turnitin英文初稿降ai率实操,这套降aigc保姆级教程千万别错过 - 殷念写论文
  • 肖有米开发:推三返一模式系统开发推三返一现成小程序开发
  • 如何快速掌握ViGEmBus虚拟手柄驱动:Windows游戏控制器兼容性终极解决方案
  • 2026成都卖劳力士首选!5 家实体店深度测评禹竞名奢汇 - 禹竞
  • 2026热门潜水表回收行情解析,南京劳力士无附件手表回收实测 - 奢侈品回收评测
  • BepInEx:Unity游戏插件框架的技术革新与多运行时生态构建
  • 【科普】城阳区新房收房,防水验收重点查这几个位置 - 青岛防水品牌推荐
  • 【Spring Boot + MyBatis|第9篇】使用 AOP 实现接口操作日志记录
  • manjaro安装电脑版微信
  • 2026武汉黄金回收实测:这家从检测到收款只用一首歌时间 - 奢侈品回收测评
  • 临沂北城新区专业管道疏通 2026 真实评测最新综合排行榜 - 居顺联家政疏通
  • Java 基础第四篇 | 循环结构:while、do-while、for
  • 卖表别被坑!2026 杭州名表回收套路盘点,浪琴名匠、帝舵碧湾怎么卖价最高 - 奢侈品回收评测
  • Python-100-Days实战:从零构建企业级RESTful API架构深度指南
  • 2026 年 6 月长沙艺体特色高中测评,升学避坑指南 - 讲清楚了
  • 客户口碑好的GEO优化公司怎么选?2026避坑指南|干货 - 品牌测评鉴赏家
  • 保研边缘人逆袭指南:从‘末流211’到东南软院,我的GPA、竞赛与面试全复盘
  • 家中闲置包包配件齐全怎么溢价?2026深圳收的顶官方顶估价标准公开 - 奢侈品回收测评
  • 2026济南名表回收排名出炉:添价收荣登榜首,七家品牌实力盘点 - 薛定谔的梨花猫
  • 西门子博图ModbusRTU轮询FB
  • HTML打包EXE离线一机一码新增试用功能(附2026最新版下载地址)
  • 持证鉴定 + 资金兜底,2026 厦门黄金回收标杆品牌权威排行榜 - 奢侈品回收评测
  • 20260616第三周
  • 在鸿蒙PC上使用pkgsrc进行包管理
  • 回收店不会说的秘密:合肥首饰保值、贬值的核心原因 - 奢侈品回收评测