目录
0、介绍
1、安装qscamel
2、设置配置
3、启动操作
4、结果
5、官网一些命令的介绍
Run
Delete
Status
Clean
Version
本次实验的目的是从一个oss对象中迁移大量文件至另外一个oss,本次的范围都是青云的oss,但是这个工具提供了市场上大部分云的迁移,可以从云oss到云oss,也可以从linux的磁盘文件到云oss,也可以从云oss到磁盘文件。
官网资料:https://docs.qingcloud.com/qingstor/developer_tools/qscamel
官网工具下载:https://github.com/yunify/qscamel/releases
创建存放目录并下载文件:
#创建目录
mkdir /soft/qscamel -p && cd /soft/qscamel
#下载文件
wget https://github.com/yunify/qscamel/releases/download/v2.0.5/qscamel_v2.0.5_linux_amd64.tar.gz
#解压文件,该文件是个二进制可直接执行
tar -zxvf qscamel_v2.0.5_linux_amd64.tar.gz
#查看文件
ll
创建启动用的配置文件
mkdir config
#编辑文件
vim config/qscamel.yaml
文件内容:
# concurrency 会控制同时启用的并发数量。
# # 如果没有设置,或者设置为 0, qscamle 将会使用逻辑 CPU 数量 * 100 作为该项的值。
# concurrency: 0
# # log_level 控制日志的级别。
# # 可选值(从更多到更少): debug, info, warn, error, fatal, panic.
# # 默认值: info
log_level: info
# # pid_file 将会控制在何处创建 PID 文件。
# # 默认值: ~/.qscamel/qscamel.pid
pid_file: /soft/qscamel/qscamel.pid
# # log_file 将会控制在何处创建日志文件。
# # 默认值: ~/.qscamel/qscamel.log
log_file: /soft/qscamel/qscamel.log
# # database_file 将会控制在何处创建数据库。
# # 默认值: ~/.qscamel/db
database_file: /soft/qscamel/db
根据配置文件中的配置创建db文件夹
mkdir /soft/qscamel/db
创建任务配置文件
mkdir /soft/qscamel/task
vim /soft/qscamel/task/otosaastobaojun.yaml
文件内容如下:
# type 是任务的类型。
# 可选值: copy, fetch, delete
# copy 将会从 source 处读取文件,并写入到 destination。
# fetch 将会从 source 处获取文件的下载链接,并使用 destination 的 fetch 功能进行拉取。
# delete 将会从 source 处获取文件的信息,并在 destination 处删除。
type: copy
# source 是任务的 source 端点。
source:
# type 是当前端点的类型。
# 可选值: aliyun, fs, filelist, gcs, qingstor, qiniu, s3, upyun.
type: qingstor
# path 是当前端点的路径。
path: /dev
options:
bucket_name: otosaas
access_key_id: 用户
secret_access_key: 密码
# destination 是任务的 destination 端点。
destination:
# type 是当前端点的类型。
# 可选值: fs, qingstor.
type: qingstor
# path 是当前端点的路径。
path: /dev
# options 是不同端点的配置,详情请参考下面的文档。
options:
bucket_name: baojun
access_key_id: 用户
secret_access_key: 密码
# ignore_existing 控制是否跳过已经存在的文件。
# 为空或未配置时将会禁用该配置,即总是覆盖
# `last_modified` 将会检查目标的 LastModified 是否比源站要大
# `md5sum` 将会对文件做完整的 md5 计算,当 md5 相同时会跳过
# 可选值: last_modified, md5sum.
ignore_existing: last_modified
大部分上面都解释清楚了,其中 access_key_id和secret_access_key是需要申请的,进入api密钥中创建,阿里云等其它云也类似
注意任务名称不能重复,如果再次启动需要修改名称才会再次copy
/soft/qscamel/qscamel_v2.0.5_linux_amd64 run test -t /soft/qscamel/task/otosaastobaojun.yaml -c /soft/qscamel/config/qscamel.yaml
参数说明:
qscamel run [任务名称] -t [任务配置] -c [启动配置]
qscamel 默认从 ~/.qscamel/qscamel.yaml
读取配置文件,你也可以通过 -c
或者 --config
来指定配置文件的位置。 通过指定不同的配置文件,你可以同时运行多个 qscamel 实例。
我测了下,200m带宽的公网,oss迁移6gb的数据文件大概需要5分钟。
Run 是 qscamel 最主要的命令。我们使用这个命令来创建或者恢复一个任务。
如果要创建一个任务,我们可以使用:
qscamel run task-name -t /path/to/task/file
如果要恢复一个任务,我们可以使用:
qscamel run task-name -t /path/to/task/file
or
qscamel run task-name
当一个新任务创建的时候就,我们将会计算任务内容的 sha256 校验和并且保存在数据库当中,同时我们还会检查任务文件的内容是否发生了修改。如果改变了,qscamel 将会返回一个错误并退出。换句话说,任务在创建完毕后就不能修改。如果你需要修改一个任务的内容,请创建一个新任务。
Delete 能够删除一个任务。
qscamel delete task-name
Status 将会展示所有任务的状态。
qscamel status
Clean 将会删除所有已经完成的任务。
qscamel clean
Version 将会显示当前 qscamel 的版本。
qscamel version