0 parallel-processing bash for-loop
我正在尝试一个循环脚本,如果可能的话,每个循环并行运行.
#!/bin/bash
for ip in $(cat ./IPs); do
ping -n -c 2 -W 1 ${ip} >> Results/${ip}.log
done
Run Code Online (Sandbox Code Playgroud)
最终,我想在循环中放置我需要的任何东西,并让它进行多处理.我试图通过其他示例,但似乎无法让它按预期工作.我已经parallel安装了,如果这是一个选项.
这似乎非常适合parallel:
parallel 'ping -n -c 2 -W 1 "{}" >>"Results/{}.log"' <IPs
Run Code Online (Sandbox Code Playgroud)
运行的命令parallel可以使用接收的行进行重定向以及参数.
我已经引用了{}命令中的使用- 这对于你自己控制下只包含主机名和/或地址的输入文件来说是不必要的,但这是一个很好的习惯,因为当输入可能包含重要的字符时到了shell.
请注意,默认情况下,parallel将每个核心只运行一个作业(这对于计算量很大的负载来说是个不错的选择).对于诸如此类的任务,大多数时间花在等待网络延迟上,我建议您使用一个-j参数(例如-j 1000%,每个核心运行10个作业).
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |