数据同步工具相关操作
名称
sco ads - 数据同步工具相关操作。
当前支持以下几种数据同步场景:
- aoss之间互传
- afs之间互传
- aoss与afs之间互传
- 本地与aoss之间互传
- 本地与afs之间互传
- ...
说明
sco ads command SRC DST [global_options]
描述
即把SRC同步到DST,既可以同步目录,也可以同步文件。
其中:
SRC
代表数据源地址及路径DST
代表目标地址及路径command
包含sync
和copy(缩写cp)
两个,sync
支持增量同步,copy(缩写cp)
支持全量同步[global_options]
代表可选的同步选项,详情参考global options
全局参数
对象存储地址格式为[NAME://][ACCESS_KEY:SECRET_KEY@]BUCKET[.ENDPOINT][/PREFIX]
其中:
NAME
是存储类型,现在支持s3
。ACCESS_KEY
和SECRET_KEY
是对象存储的访问密钥,如果包含了特殊字符,则需要手动转义并替换,比如/
需要被替换为其转义符%2F
BUCKET[.ENDPOINT]
是对象存储的访问地址PREFIX
是可选的,限定要同步的目录名前缀
以下是一个AOSS对象存储的地址范例:
# aoss内网地址
s3://ak:sk@mybucket.aoss-internal.cn-sh-01.sensecoreapi-oss.cn/prefix
# aoss公网地址
s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix
global options全局参数
以下均为可选参数 |命令内容及配置参数|命令说明| |:------|:------| |--start KEY|同步的第一个文件名KEY| |--end KEY|同步的最后一个文件名KEY| |--threads VALUE|使用并发线程数VALUE (默认:10)| |--dryrun|不拷贝文件 (默认:false)| |--delete-src|同步后删除源地址的对象 (默认:false)| |--delete-dst|删除目标地址下的不相关对象 (默认:false)| |--exclude PATTERN|排除匹配PATTERN的文件| |--include PATTERN|匹配PATTERN的文件,可以与--exclude选项配合使用| |--exclude-dir PATTERN|排除匹配PATTERN的多个目录| |--include-dir PATTERN|匹配PATTERN的多个目录| |--bwlimit VALUE|限制最大带宽VALUE,单位为Mbps(默认:0,表示不限制)| |--recordName VALUE|跳过软链接源目录的迁移,并记录到VALUE| |--https|使用 HTTPS (默认:false)| |--verbose|将日志level设置为DEBUG| |--quiet|将日志level设置为ERROR| |--help|帮助中心| |--version|查看当前版本|
快速开始
全量迁移使用示例
- 将存储桶
s3://mybucket/data1
的数据同步到本地目录./data
,希望针对某一字典序范围进行同步,将会同步对象名属于闭合区间[a, f]字典序范围的对象:
sco ads --start=a --end=f cp s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./data/
- 模拟复制存储桶
s3://mybucket/data1
的数据同步到本地目录./data
,作用是list查看文件数目和大小:
sco ads --dryrun cp s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./data/
- 将aoss存储桶
s3://mybucket/data
的数据同步到afs挂载目录/mnt/mydir
,同步过程中只同步目录名包含关键字dir1
:
sco ads --include-dir=dir1 cp s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/data/ /mnt/mydir/
- 将aoss存储桶
s3://mybucket/data
的数据同步到afs挂载目录/mnt/mydir
,同步过程中过滤掉目录名包含关键字dir2
:
sco ads --exclude-dir=dir2 cp s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/data/ /mnt/mydir/
- 删除aoss存储桶文件,只删除不copy:
sco ads --dryrun --deleteSrc cp s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/data/ ./data/
- 将afs挂载目录
/mnt/mydata1
的数据同步到aoss存储桶s3://mybucket/data
,跳过软链接源目录的迁移,并记录到a.txt:
sco ads --recordName a.txt cp /mnt/mydata1/ s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/data/
增量迁移使用示例
- 将本地目录
./data
的数据同步到aoss存储桶s3://mybucket/data
:
sco ads --https sync ./data/ s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/data/
- 将aoss存储桶
s3://mybucket/data
的数据同步到afs挂载目录/mnt/mydir
,同步过程中只同步对象名包含关键字aaa
:
sco ads --include=aaa sync s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/data/ /mnt/mydir/
- 将aoss存储桶
s3://mybucket/data
的数据同步到afs挂载目录/mnt/mydir
,同步过程中过滤掉对象名包含关键字bbb
:
sco ads --exclude=bbb sync s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/data/ /mnt/mydir/
- 将存储桶
s3://mybucket1/data1
的数据同步到存储桶s3://mybucket2/data2
,设置线程数为20,带宽上限为10Mbps:
sco ads --threads=20 --bwlimit=10 sync s3://ak1:sk1@mybucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/data1/ s3://ak2:sk2@mybucket2.aoss.cn-sh-01.sensecoreapi-oss.cn/data2/
- 模拟复制afs挂载目录
/mnt/mydata1
的数据同步到本地目录./data2
,作用是list查看文件数目和大小:
sco ads --dryrun sync /mnt/mydata1/ ./data/