簡體   English   中英

並行運行多個 AWS sync 命令以將數據從多個源 s3 復制到多個目標 s3

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM