[英]Run multiple AWS sync command in parallel to copy data from multiple source s3 to multiple destination s3
我想將數據從 A 桶復制到 M 桶,從 B 桶復制到 N 桶等等。 為了加快這個過程,我像這樣並行運行同步命令
source_buckets=(A B C D E F)
destination_buckets=(M N O P Q R)
parallel -j 6 "aws s3 sync s3://{1}/$release_version/ s3://{2}/" ::: "${source_buckets[@]}" ::: "${destination_buckets[@]}"
但是使用此命令,來自所有存儲桶 (A、B、C、D、E、F) 的數據將發送到每個目標存儲桶。 有人可以幫我解決嗎?
另外,還有其他方法可以加快 cp/sync 過程嗎?
您在這里使用的是 gnu parallel,這可能是在嘗試執行其預期的操作,而不是您想要的操作。
我做了一個快速測試並在沒有 aws cli 的情況下確認了這一點 -
parallel echo ::: a b c ::: d e f
正在做同樣的事情 -
a d
a e
a f
b d
b e
b f
c d
c e
c f
所以有--link
選項來匹配 arrays:
parallel --link echo ::: a b c ::: d e f
a d
b e
c f
關於替代方法 - boto3 是 AWS CLI 背后的庫,您可以使用 python 的所有功能來做各種事情 - 參見例如通過 boto3 同步兩個桶
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.