使用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
文件,需手动清理目标端。