有没有一种方法可以使bash for循环并行化?

kk

我有一个简单的脚本,该脚本从一系列硬盘驱动器中提取SMART数据并将其写入带有时间戳的日志文件,该日志文件随后会记录并解析为相关数据。

filename="filename$( date '+%Y_%m_%d_%H%M' ).txt"
for i in {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}
do
smartctl -a /dev/sd$i >> /path/to/location/$filename
done 

由于这需要几秒钟才能运行,因此我想找到一种并行化它的方法。我尝试在循环中的单行末尾附加一个“&”,但是这会导致文本文件在各节结束时被随意写入,而不是顺序地且以可读的方式写入。有没有一种方法可以将其分叉到每个驱动器的单独进程中,然后将输出通过管道返回到有序的文本文件中?

此外,我假设设置文件名变量将必须移至for循环中,以便派生程序能够访问它。但是,如果脚本运行了足够长的时间以滚动到新的一分钟(或两分钟),然后脚本变成了按顺序标注日期的片段,而不是一个连续的文件,则会引起问题。

马克·谢切尔

使用这样的GNU Parallel:

parallel -k 'smartctl -a /dev/{}' ::: a b c d e f g h  i j k l m n o p > path/to/output

-k选项keeps按顺序输出。-j 8如果要一次运行8个,请添加,否则一次将每个内核运行一次。或者,-j 16如果您想一次运行它们全部...

parallel -j 16 -k 'smartctl ....

当然,如果您在,bash也可以这样做:

parallel -j 16 -k 'smartctl -a /dev/{}' ::: {a..o} > path/to/output

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种方法可以使for循环沿列表的元素重复?

来自分类Dev

有没有一种方法可以使表演不结束(例如无限的while循环)?

来自分类Dev

有没有一种方法可以使序列号字符串不使用for循环?

来自分类Dev

有没有一种方法可以使用循环对多个图像执行onclick功能?

来自分类Dev

有没有一种方法可以使用websoket重载Node.js事件循环

来自分类Dev

有没有一种方法可以重写HTML以使用gulp最小化的CSS

来自分类Dev

有没有一种方法可以使用HashWithIndifferentAccess序列化ActiveRecord的JSON属性?

来自分类Dev

有没有一种方法可以使Rust中的(反)序列化枚举“变平”?

来自分类Dev

有没有一种方法可以使serde_json严格反序列化?

来自分类Dev

有没有一种方法可以使Excel VBA中的查询列动态化?

来自分类Dev

有没有一种方法可以通过bash_profile来“资源化”而不重启终端?

来自分类Dev

有没有一种方法可以简化Python中的“循环” /“循环”交互?

来自分类Dev

有没有一种方法可以在linq查询中参数化方法?

来自分类Dev

有没有一种方法可以使用编码/目标序列化循环数据结构?

来自分类Dev

有没有一种方法可以将列表理解重写为for循环?

来自分类Dev

有没有一种方法可以简化R中利用循环的函数?

来自分类Dev

有没有一种方法可以在循环结束时打印?

来自分类Dev

有没有一种方法可以加快python中的嵌套for循环?

来自分类Dev

有没有一种方法可以循环遍历plsql中的选定列

来自分类Dev

有没有一种方法可以将列表理解重写为for循环?

来自分类Dev

有没有一种方法可以使JSONArray重载以使其在循环中像常规List一样工作?

来自分类Dev

有没有一种方法可以使除一个窗口以外的所有窗口最小化?

来自分类Dev

有没有一种方法可以在Swift中初始化数组以使其具有某些Type T的重复值

来自分类Dev

在C ++中,有没有一种方法可以使循环的输出显示在同一行上?

来自分类Dev

有没有一种方法可以使用char变量创建一个for循环来创建多个绘图?

来自分类Dev

有没有一种方法可以使编译器使用封闭的方法名称来初始化字符串?

来自分类Dev

有没有一种方法可以使用开窗函数将总数最少保持为0,而不必产生循环?

来自分类Dev

有没有一种方法可以优化此Promise循环,以使我不再出现致命的JavaScript堆内存不足错误?

来自分类Dev

有没有一种方法可以使用Alpine.js向循环对象添加属性或组件数据?

Related 相关文章

  1. 1

    有没有一种方法可以使for循环沿列表的元素重复?

  2. 2

    有没有一种方法可以使表演不结束(例如无限的while循环)?

  3. 3

    有没有一种方法可以使序列号字符串不使用for循环?

  4. 4

    有没有一种方法可以使用循环对多个图像执行onclick功能?

  5. 5

    有没有一种方法可以使用websoket重载Node.js事件循环

  6. 6

    有没有一种方法可以重写HTML以使用gulp最小化的CSS

  7. 7

    有没有一种方法可以使用HashWithIndifferentAccess序列化ActiveRecord的JSON属性?

  8. 8

    有没有一种方法可以使Rust中的(反)序列化枚举“变平”?

  9. 9

    有没有一种方法可以使serde_json严格反序列化?

  10. 10

    有没有一种方法可以使Excel VBA中的查询列动态化?

  11. 11

    有没有一种方法可以通过bash_profile来“资源化”而不重启终端?

  12. 12

    有没有一种方法可以简化Python中的“循环” /“循环”交互?

  13. 13

    有没有一种方法可以在linq查询中参数化方法?

  14. 14

    有没有一种方法可以使用编码/目标序列化循环数据结构?

  15. 15

    有没有一种方法可以将列表理解重写为for循环?

  16. 16

    有没有一种方法可以简化R中利用循环的函数?

  17. 17

    有没有一种方法可以在循环结束时打印?

  18. 18

    有没有一种方法可以加快python中的嵌套for循环?

  19. 19

    有没有一种方法可以循环遍历plsql中的选定列

  20. 20

    有没有一种方法可以将列表理解重写为for循环?

  21. 21

    有没有一种方法可以使JSONArray重载以使其在循环中像常规List一样工作?

  22. 22

    有没有一种方法可以使除一个窗口以外的所有窗口最小化?

  23. 23

    有没有一种方法可以在Swift中初始化数组以使其具有某些Type T的重复值

  24. 24

    在C ++中,有没有一种方法可以使循环的输出显示在同一行上?

  25. 25

    有没有一种方法可以使用char变量创建一个for循环来创建多个绘图?

  26. 26

    有没有一种方法可以使编译器使用封闭的方法名称来初始化字符串?

  27. 27

    有没有一种方法可以使用开窗函数将总数最少保持为0,而不必产生循环?

  28. 28

    有没有一种方法可以优化此Promise循环,以使我不再出现致命的JavaScript堆内存不足错误?

  29. 29

    有没有一种方法可以使用Alpine.js向循环对象添加属性或组件数据?

热门标签

归档