一、首先在服务器安装数据迁移工具rclone
Rclone是一个命令行程序,用于管理云存储上的文件。它是云供应商的web存储接口的一个功能丰富的替代品。超过40种云存储产品支持rclone,包括S3对象存储、企业和消费者文件存储服务以及标准传输协议。
Rclone具有与unix命令rsync、cp、mv、mount、ls、ncdu、tree、rm和cat相同的强大的云版本。Rclone熟悉的语法包括shell管道支持和——dry-run保护。它可在命令行、脚本中或通过其API使用。
下载 https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone
sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
sudo mandb
二、查看rclone 版本
查看版本:rclone version
[root@WGSZJQR_VM05 citc]# rclone version
rclone v1.65.1
- os/version: centos 7.9.2009 (64 bit)
- os/kernel: 3.10.0-1160.el7.x86_64 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.21.5
- go/linking: static
- go/tags: none
三、rclone配置minio
一般是在/root/.config/rclone
目录下创建配置文件rclone.conf
,内容如下:
[minio]
type = s3
provider = Minio
env_auth = false
access_key_id =
secret_access_key =
region =
endpoint = http://x.x.x.x:9000
location_constraint =
server_side_encryption =
配置内容参数说明:
[minio] -->配置的名称,自定义
type = s3 -->存储方式,minio属于:s3
provider = Minio -->供应商
env_auth = false -->AWS凭证,默认false
access_key_id = minio -->S3账户AK
secret_access_key = minio123 -->S3账户SK
region = cn-east-1 -->连接的地域
endpoint = http://x.x.x.x:9000 -->S3存储访问地址
location_constraint = -->位置约束-必须设置为与区域匹配,可以设置为空
server_side_encryption =
四、rclone命令
查看minio下存储的所有bucket,若无报错则通信正常。
rclone lsd minio:
将minio中指定桶test中的所有文件复制到本地文件夹下(可以用来做数据的备份)
rclone copy minio:test /opt/test/
将本地备份文件复制到存储桶newtest中,可以添加参数 -P 来查看进度
rclone copy -P /opt/test/ minio:newtest
将本地需要迁移到minio中的文件同步到bucket储存桶中,可以添加参数 -P 来查看进度
rclone sync -P /opt/test/ minio:bucket
五、两个minio的数据在线迁移
[minio]
type = s3
provider = Minio
env_auth = false
access_key_id = x
secret_access_key = x
region = cn-east-1
endpoint = http://x.x.x.x.12:9000
location_constraint =
server_side_encryption =
[minio1]
type = s3
provider = Minio
env_auth = false
access_key_id = x
secret_access_key = x
region = cn-east-1
endpoint = http://x.x.x.13:9000
location_constraint =
server_side_encryption =
# 执行同步指令并能查看进度
rclone sync -P minio:test minio1:test
# minio配置文件中的[minio]的地址,minio1则是[minio1]的地址
# minio:test对应的意思是 x.x.x.12:9000的test桶
# minio1:test则是对应的 x.x.x.13:9000的test桶
# 执行复制指令并能查看进度
rclone -P copy minio1:test2 minio:test3