目前大多项目我们都会使用各种存储服务,例如oss、cos、minio等。当然,因各种原因,可能需要在不同存储服务间进行数据迁移工作,所以今天就给大家介绍一个比较通用的数据迁移工具Rclone。
Web GUI for rclone rc :https://github.com/retifrav/rclone-rc-web-gui
一、Rclone是什么?
Rclone是一个命令行程序,用于管理云存储上的文件。它是云供应商Web存储界面的功能丰富的替代方案。超过40种云存储产品支持rclone,包括S3对象存储,业务和消费者文件存储服务以及标准传输协议。详细推荐直接官网学习:英文官网、中文网站
二、Rclone能做什么?
备份(和加密)文件到云存储。 从云存储还原(和解密)文件。 将云数据镜像到其他云服务或本地。 将数据迁移到云,或在云存储供应商之间迁移。 将多个加密的,缓存的或多样化的云存储作为磁盘挂载。
三、使用步骤
1.安装Rclone
curl https://rclone.org/install.sh | sudo bash
2.生成配置文件
配置可以随便选择,选择完成后重新修改就好了,文章后面会有修改方法。
rclone config
3、查看生成的配置文件
在路径/root/.config/rclone/rclone.conf(rclone.conf为配置文件生成时配置的名称)
cd /root/.config/rclone
4、修改配置文件
vim /root/.config/rclone/rclone.conf
-配置文件字符串
指定rclone配置文件的位置,以覆盖 默认。例如。rclone config --config="rclone.conf"
由于变化,具体默认设置有点复杂 通过不同版本的 RClone,同时保留 向后兼容,但在大多数情况下很简单:
%APPDATA%/rclone/rclone.conf在Windows平台上~/.config/rclone/rclone.conf在其他方面
完整逻辑如下:Rclone将寻找现有的 配置文件按优先级顺序存放于以下任一位置:
rclone.conf(在程序目录中,rclone 可执行文件所在)%APPDATA%/rclone/rclone.conf(仅限Windows)$XDG_CONFIG_HOME/rclone/rclone.conf(适用于所有系统,包括Windows)~/.config/rclone/rclone.conf(见下文~符号的解释)~/.rclone.conf
修改配置如下,请根据自己服务配置修改部分参数
[minio-zwy] type = s3 env_auth = false provider = Minio region = cn-east-1 access_key_id = minioadmin secret_access_key = minioadmin endpoint = http://127.0.0.1:8000 [minio-lin] type = s3 env_auth = false provider = Minio region = cn-east-1 access_key_id = minioadmin secret_access_key = minioadmin endpoint = http://127.0.0.99:8000
5、进行数据同步
zwy同步到lin
rclone sync minio-zwy:test minio-lin:test
或者
lin同步到zwy
rclone sync minio-lin:test minio-zwy:test
rclone sync 源(配置文件名称): 源数据Bucket 目标源名称:目标bucket
6.常见命令
rclone config - 以控制会话的形式添加rclone的配置,配置保存在.rclone.conf文件中。 rclone copy - 将文件从源复制到目的地址,跳过已复制完成的。 rclone sync - 将源数据同步到目的地址,只更新目的地址的数据。 rclone move - 将源数据移动到目的地址。 rclone delete - 删除指定路径下的文件内容。 rclone purge - 清空指定路径下所有文件数据。 rclone mkdir - 创建一个新目录。 rclone rmdir - 删除空目录。 rclone check - 检查源和目的地址数据是否匹配。 rclone ls - 列出指定路径下所有的文件以及文件大小和路径。 rclone lsd - 列出指定路径下所有的目录/容器/桶。 rclone lsl - 列出指定路径下所有文件以及修改时间、文件大小和路径。 rclone md5sum - 为指定路径下的所有文件产生一个md5sum文件。 rclone sha1sum - 为指定路径下的所有文件产生一个sha1sum文件。 rclone size - 获取指定路径下,文件内容的总大小。. rclone version - 查看当前版本。 rclone cleanup - 清空remote。 rclone dedupe - 交互式查找重复文件,进行删除/重命名操作。
7.常用操作
**rclone lsd:**列出指定path下,所有的目录、容器、桶。 # remote 为配置文件中的[name]
rclone lsd remote:path
rclone copy:将文件从源复制到目的地址,跳过已复制完成的。 # `rclone copy` 复制指定路径下文件
rclone copy source:sourcepath dest:destpath
**rclone sync:**同步的始终是 path 目录下的数据(空目录将不会被同步),而不是 path 目录。同步数据时,可能会删除目的地址的数据;建议先使用–dry-run 标志来检查要复制、删除的数据。同步数据出错时,不会删除任何目的地址的数据。
rclone sync source:path dest:path
**rclone move:**同步数据时,可能会删除目的地址的数据;建议先使用–dry-run 标志来检查要复制、删除的数据。
rclone move source:path dest:path
**rclone purge:**清空 path 目录和数据。
rclone purge remote:path
**rclone mkdir:**创建 path 目录。
rclone mkdir remote:path
总结
以上就是今天介绍的全部内容,这里介绍的rclone sync的方式数据同步不能做到同步过程实时同步,即同步过程中,如果有新的文件上传到已同步完成的文件下,该文件会丢失。
https://rclone.org/docs/
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/notes/318434.html