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

使用rclone迁移minio文件

文章目录

    • 一、rclone简介
      • 1、工具说明
      • 2、核心特点
        • 2.1、跨平台支持
        • 2.2、多存储支持
        • 2.3、加密与安全
        • 2.4、增量同步与断点续传
        • 2.5、高性能
      • 3、适用场景
        • 3.1、云存储迁移
        • 3.2、备份与同步
        • 3.3、跨云协作
        • 3.4、数据加密归档
    • 二、常用命令
      • 1、基础操作
      • 2、文件传输
      • 3、文件管理
      • 4、高级功能
      • 5、数据校验与监控
      • 6、加密存储
      • 7、挂载为磁盘(需安装fuse)
      • 8、性能调优
    • 三、迁移示例(minio)
      • 1、下载安装rclone
      • 2、生成配置文件
        • 2.1、生成命令
        • 2.2、配置文件
      • 3、执行迁移
    • 四、注意事项
      • 1、 数据安全风险
      • 2、云服务限制
      • 3、性能与稳定性优化
      • 4、文件与编码问题
      • 5、日志与调试
      • 6、资源管理

一、rclone简介

1、工具说明

rclone官方网站:https://rclone.org
Rclone(Remote Clone)是一款功能强大的开源命令行工具,专门用于管理、同步和迁移云端/本地存储的文件。它支持超过70种存储服务(如Google Drive、S3、Dropbox等),被誉为“云存储的瑞士军刀”。

2、核心特点

2.1、跨平台支持

Windows/macOS/Linux全平台兼容,甚至可在树莓派等设备上运行。

2.2、多存储支持

覆盖主流云服务(AWS S3、Google Drive、OneDrive等)、FTP/SFTP、WebDAV,甚至本地文件系统。

2.3、加密与安全

支持客户端加密(Crypt功能),迁移敏感数据时可端到端加密。

2.4、增量同步与断点续传

仅传输修改过的文件,中断后可恢复任务,节省时间和流量。

2.5、高性能

多线程传输、内存缓存优化,适合大规模数据迁移。

3、适用场景

3.1、云存储迁移

如将阿里云OSS数据迁移至AWS S3。

3.2、备份与同步

本地服务器与云端自动同步(类似rsync但支持云服务)。

3.3、跨云协作

不同团队使用的云存储间交换数据。

3.4、数据加密归档

将加密后的文件存储到公有云。

二、常用命令

1、基础操作

# 查看rclone版本
rclone version# 列出所有已配置的存储服务
rclone listremotes# 查看存储服务的目录结构(如Google Drive)
rclone tree remote:path

2、文件传输

# 将本地文件复制到云存储(不删除目标端文件)
rclone copy /local/path remote:path --progress# 同步本地目录到云存储(删除目标端多余文件,慎用!)
rclone sync /local/path remote:path --dry-run  # 模拟运行,无实际操作
rclone sync /local/path remote:path            # 实际执行# 移动文件(复制后删除源文件)
rclone move /local/path remote:path

3、文件管理

# 列出云存储文件(显示大小、修改时间)
rclone ls remote:path# 递归列出所有文件(包括子目录)
rclone lsf remote:path -R# 删除云存储文件/目录
rclone delete remote:path/file.txt
rclone purge remote:path/folder  # 删除整个目录

4、高级功能

# 增量同步(仅传输修改过的文件)
rclone sync /local/path remote:path --update# 限制带宽(例如1MB/s)
rclone sync /local/path remote:path --bwlimit=1M# 多线程加速(默认4线程,可调整)
rclone copy /local/path remote:path --transfers=8# 排除特定文件(如临时文件)
rclone sync /local/path remote:path --exclude "*.tmp"

5、数据校验与监控

# 检查源和目标文件一致性
rclone check /local/path remote:path --size-only# 实时显示传输统计(每10秒更新)
rclone copy /local/path remote:path --stats=10s# 生成传输日志
rclone sync /local/path remote:path --log-file=transfer.log

6、加密存储

# 配置加密存储(需提前设置Crypt)
rclone config# 加密上传文件
rclone copy /local/path crypt-remote:encrypted-path# 解密下载文件
rclone copy crypt-remote:encrypted-path /decrypted-path

7、挂载为磁盘(需安装fuse)

# 将云存储挂载为本地磁盘(Linux/macOS)
rclone mount remote:path /mnt/cloud --daemon# Windows挂载(需WinFSP)
rclone mount remote:path Z: --volname=CloudDrive

8、性能调优

# 调整内存缓存(默认64MB,可增加)
rclone sync /local/path remote:path --buffer-size=256M# 跳过文件哈希校验(加速但降低可靠性)
rclone sync /local/path remote:path --checksum=false# 仅同步特定大小的文件(例如>10MB)
rclone sync /local/path remote:path --min-size=10M

三、迁移示例(minio)

1、下载安装rclone

# 下载文件
wget https://downloads.rclone.org/v1.57.0/rclone-v1.57.0-linux-amd64.zip
# 安装解压命令
apt install unzip
# 解压文件
unzip rclone-v1.57.0-linux-amd64.zip
# 赋予执行权限
chmod 0755 ./rclone-v1.57.0-linux-amd64/rclone
# 拷贝到 /usr/bin/ 可以直接使用 rclone命令
cp ./rclone-v1.57.0-linux-amd64/rclone /usr/bin/
# 删除源文件
rm -rf ./rclone-v1.57.0-linux-amd64.zip

2、生成配置文件

2.1、生成命令
# 生成配置文件
rclone config# 一般生成配置文件后,在~/.config/rclone/rclone.conf,如果不是root用户,需要使用命令查找配置文件
rclone config - 进入交互式配置选项,进行添加、删除、管理网盘等操作。
rclone config file - 显示配置文件的路径,一般配置文件在 ~/.config/rclone/rclone.conf,更换服务器可直接copy该文件。
rclone config show - 显示配置文件信息
2.2、配置文件
# 备注:可以在一个配置文件中配置多份,使用[name]来区分
[minio-qa]
type = s3
provider = Minio
env_auth = false
access_key_id = minioadmin
secret_access_key = minioadmin
# region = cn-east-1
endpoint = http://127.0.0.1:9000
location_constraint =
server_side_encryption =[minio-prod]
type = s3
provider = Minio
env_auth = false
access_key_id = minioadmin
secret_access_key = minioadmin
# region = cn-east-1
endpoint = http://20.205.14.131:9000
location_constraint =
server_side_encryption =

3、执行迁移

# 1. 测试性复制(源桶到目标桶,格式:“配置文件内的name:桶名称”)
rclone copy minio-qa:source-bucket-test minio-qa:target-bucket-test# 2. 安全同步(先模拟后执行)
rclone sync minio-qa:source-bucket-test minio-qa:target-bucket-test --dry-run  # 先测试
rclone sync minio-qa:source-bucket-test minio-qa:target-bucket-test            # 再执行# 3. 创建QA环境备份
rclone copy minio-qa:sc-qa minio-qa:sc-qa-backup# 4. 创建生产环境备份
rclone copy minio-prod:sc-prod minio-prod:sc-prod-backup# 5. 跨环境同步(QA→生产,危险操作!建议先dry-run)
rclone sync minio-qa:sc-qa minio-prod:sc-prod --dry-run  # 必须先用--dry-run测试

四、注意事项

1、 数据安全风险

  • sync 命令会删除目标端多余文件:误用可能导致数据丢失,建议先用 --dry-run 模拟运行。
  • 加密存储(Crypt)的密钥必须备份:丢失配置文件或密码会导致数据无法恢复。
  • move 命令会删除源文件:确保数据完整后再执行,避免误删。

2、云服务限制

  • API 调用限制:如 Google Drive、OneDrive 等有请求频率限制,可使用 --tpslimit 控制。
  • 文件大小限制:部分云存储(如 OneDrive)对单文件大小有限制(如 15GB)。
  • 路径大小写敏感:如 AWS S3 区分大小写,而 Windows 不区分,可能导致同步遗漏。

3、性能与稳定性优化

  • 网络不稳定时启用重试:使用 --retries=5 --retries-sleep=30s 避免因短暂故障中断。
  • 多线程加速:--transfers=8 可提高传输速度,但需注意内存占用。
  • 带宽限制:--bwlimit=2M 防止占用过多带宽,影响其他服务。

4、文件与编码问题

  • 特殊字符/中文文件名:使用 --encoding=utf-8 避免乱码或同步失败。
  • 符号链接处理:默认不同步符号链接,需用 --copy-links 显式指定。
  • 时间戳保留:部分云存储默认不保留修改时间,可用 --preserve-timestamps 强制同步。

5、日志与调试

  • 敏感信息泄露:日志可能包含路径和文件名,避免公开分享。
  • 调试模式:-vv --log-file=debug.log 可输出详细日志,便于排查问题。

6、资源管理

  • 内存占用:大文件多线程传输可能占用较高内存,可用 --buffer-size=32M 调整。
  • 临时文件清理:传输中断可能残留 .rclone-part 文件,需手动清理目标端。
http://www.xdnf.cn/news/1414.html

相关文章:

  • PHP 反序列化CLI 框架类PHPGGC 生成器TPYiiLaravel 等利用
  • 深入微服务核心:从架构设计到规模化
  • Openharmony 和 HarmonyOS 区别?
  • RecyclerView中实现横向左滑加载更多功能
  • 【鸿蒙HarmonyOS】深入理解router与Navigation
  • MOS管驱动电路以及阻值选取
  • ⭐Unity 开发 | 如何通过 NTP 网络时间实现精准的跨平台时间同步【附完整源码 + UI 模块 + 偏差分析】
  • UE5的 Modify Curve 蓝图节点
  • L1-107 高温补贴 - java
  • HBuilder压缩文件教程
  • 滑动窗口算法(一)
  • Python类和对象二(十一)
  • 深度学习中的黑暗角落:梯度消失与梯度爆炸问题解析
  • 制作一款打飞机游戏19:碰撞检测
  • 【双指针】有效三角形的个数
  • 香港科技大学广州|金融科技学域博士招生宣讲会—南开大学专场
  • 大模型面经 | 春招、秋招算法面试常考八股文附答案(五)
  • MCP介绍及Cursor中的应用 -》智能体
  • 【云服务器】在优云智算平台上安装 libnvidia-gl 的实验日志
  • Maven 手动添加 JAR 包到本地仓库笔记
  • 树莓派超全系列教程文档--(41)树莓派config.txt旧版内存控制选项
  • 单片机与FPGA的核心差异、优缺点、编程差异、典型应用场景、选型等对比分析
  • 集结号海螺捕鱼活动系统开发全解(第五篇)
  • Ubuntu20.04下GraspNet复现流程中的问题
  • 26.OpenCV形态学操作
  • tomcat Server 连接服务器 进展
  • LangChain Runnable简介
  • P1613 跑路
  • Eliciting Causal Abilities in Large Language Models for Reasoning Tasks
  • 【Python 学习笔记】 pip指令使用