Shell脚本中的并行处理或多线程



我正在shell中编写一个脚本,使用curl调用从应用程序中提取文件,提取100个文件需要30多分钟。

我想把它分成多个块,并进行一个并行的curl调用(例如:每次调用10个文件(。

我是并行处理/线程方面的新手。

Q"我想要。。。执行并行curl调用">

有关所有可能的语法详细信息,请从man parallel开始

接下来,还可以使用一些curl技巧,但仅限于那些不与parallel语法元素冲突的技巧。

由于fileIO操作速度较慢,并且具有相当高的(但可屏蔽(延迟,因此许多并发进程可能会增长得很高:

parallel --jobs 24 
--dry-run  
curl             
ftps://a.b.c.d/node7-{1}/{1}-{2}/{1}-{2}-{3}-{4}_*.jpg 
::: "LKLN" "LKRO" "LKPM"                                     
::: $( seq -f "%04g" 2011 2020 )                              
::: $( seq -f "%02g" 4  6 )                                    
::: $( seq -f "%02g" 1 31 )                                     

将产生的演示:

...
curl ftps://a.b.c.d/node7-LKLN/LKLN-2020/LKLN-2020-06-29_*.jpg
curl ftps://a.b.c.d/node7-LKLN/LKLN-2020/LKLN-2020-06-30_*.jpg
curl ftps://a.b.c.d/node7-LKLN/LKLN-2020/LKLN-2020-06-31_*.jpg
curl ftps://a.b.c.d/node7-LKRO/LKRO-2011/LKRO-2011-04-01_*.jpg
curl ftps://a.b.c.d/node7-LKRO/LKRO-2011/LKRO-2011-04-02_*.jpg
curl ftps://a.b.c.d/node7-LKRO/LKRO-2011/LKRO-2011-04-03_*.jpg
...

所有分配在所述24个parallel-编排的过程中

最后,请随时调整您的脚本策略,以满足并匹配您的实际传输、存储、处理器和内存容量、日志记录和自我报告需求。

您成为了parallel编排处理的下一位大师。

自2007年以来,所有学分都归Ole Tange所有!

最新更新