Parallel processing 使用ping和Gnu并行扫描局域网

Parallel processing 使用ping和Gnu并行扫描局域网,parallel-processing,ping,Parallel Processing,Ping,我试图用ping扫描我的局域网,调用gnupallel。理想情况下,代码只需报告那些已启动的IP地址,并删除任何详细的报告。运行良好的原始代码(无并行代码)是: ip的,单位为美元(序号1254);doping-t5-c1192.168.0.$ip>/dev/null;[$?-eq 0]&回显“192.168.0.$ip UP”&完成 但是,所有作业完成消息都很烦人(set+m没有帮助)。按顺序运行会花费很长时间轮询每个IP地址 到目前为止有效的并行代码(去掉--dry run来执行)是: 但是

我试图用ping扫描我的局域网,调用gnupallel。理想情况下,代码只需报告那些已启动的IP地址,并删除任何详细的报告。运行良好的原始代码(无并行代码)是:

ip的
,单位为美元(序号1254);doping-t5-c1192.168.0.$ip>/dev/null;[$?-eq 0]&回显“192.168.0.$ip UP”&完成

但是,所有作业完成消息都很烦人(set+m没有帮助)。按顺序运行会花费很长时间轮询每个IP地址

到目前为止有效的并行代码(去掉--dry run来执行)是:

但是试着去做

seq 1 254 | parallel  --dry-run ping -t5 -c 1 192.168.0.{} ';' [ $? -eq 0 ] && echo "192.168.0.{} UP" 

或其变体,无法实现目标。这里有人可以帮助测试部件吗?

破解它-希望这对其他人有帮助

seq 1 254 | parallel  ' ping -t5 -c 1 192.168.0.{} >/dev/null && echo 192.168.0.{} UP ' 2>/dev/null 

从Gnu文档来看,并行超时似乎比ping超时更有效

seq 1 254 | parallel  --timeout 2 -j64 -keep-order ' ping -c 1 192.168.0.{} >/dev/null && echo 192.168.0.{} UP ' 2>/dev/null 

试试看平行-j 64'平。。。192.168.0.{}&&echo…您也可以删除
seq…|
部分并使用
parallel…::{1..254}
@Mark Setchell-非常感谢-没有双关语的意思,但我们同时做了我们的答案!
seq 1 254 | parallel  --timeout 2 -j64 -keep-order ' ping -c 1 192.168.0.{} >/dev/null && echo 192.168.0.{} UP ' 2>/dev/null