Multithreading 使用bash ping测试多线程

Multithreading 使用bash ping测试多线程,multithreading,bash,Multithreading,Bash,我正在尝试使用ping-c1测试检查2500多台服务器的运行状况。检查单个服务器需要1.5秒。因为这个练习几乎需要1.5个小时。我想将这个执行过程缩短近10分钟或15分钟,所以考虑在bash脚本中启用线程。我注意到epel提供的“并行”增强了多线程特性 我可以知道有没有其他方法可以达到这个目的?与其他语言相比,我更喜欢bash 谢谢您可能无法获得所需的全部加速,但您是否尝试过在后台运行每个进程?大概是这样的: for i in {1..100} ; do ( /cygdrive

我正在尝试使用ping-c1测试检查2500多台服务器的运行状况。检查单个服务器需要1.5秒。因为这个练习几乎需要1.5个小时。我想将这个执行过程缩短近10分钟或15分钟,所以考虑在bash脚本中启用线程。我注意到epel提供的“并行”增强了多线程特性

我可以知道有没有其他方法可以达到这个目的?与其他语言相比,我更喜欢bash


谢谢

您可能无法获得所需的全部加速,但您是否尝试过在后台运行每个进程?大概是这样的:

for i in {1..100} ; 
    do     ( /cygdrive/c/Windows/System32/ping -n 3 127.0.0.1 & ); 
done
有一个名为的工具,可以从输入文件中读取:

fping hosts.txt
程序不需要是多线程的,因为单个进程/线程可以同时ping多个主机


或者,您可以使用良好的旧
nmap
,它也可以并行执行ping测试:

nmap -n -sP -iL hosts.txt

制作多个服务器列表并在后台对这些列表并行运行多个ping脚本如何。bash不是满足您需求的最佳解决方案。有一些工具,比如如果你真的想坚持使用bash
parallel
fping
参见这里