目錄
0、介紹
1、安裝qscamel
2、設定配置
3、啟動操作
4、結果
5、官網一些指令的介紹
Run
Delete
Status
Clean
Version
0、介紹
本次實驗的目的是從一個oss對象中遷移大量檔案至另外一個oss,本次的範圍都是青雲的oss,但是這個工具提供了市場上大部分雲的遷移,可以從雲oss到雲oss,也可以從linux的磁盤檔案到雲oss,也可以從雲oss到磁盤檔案。
官網資料:https://docs.qingcloud.com/qingstor/developer_tools/qscamel
官網工具下載下傳:https://github.com/yunify/qscamel/releases
1、安裝qscamel
建立存放目錄并下載下傳檔案:
#建立目錄
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
2、設定配置
建立啟動用的配置檔案
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密鑰中建立,阿裡雲等其它雲也類似
3、啟動操作
注意任務名稱不能重複,如果再次啟動需要修改名稱才會再次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 執行個體。
4、結果
我測了下,200m帶寬的公網,oss遷移6gb的資料檔案大概需要5分鐘。
5、官網一些指令的介紹
Run
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
Delete 能夠删除一個任務。
qscamel delete task-name
Status
Status 将會展示所有任務的狀态。
qscamel status
Clean
Clean 将會删除所有已經完成的任務。
qscamel clean
Version
Version 将會顯示目前 qscamel 的版本。
qscamel version