一次将特定的 ip 范围 ping 到文本(而不是一个接一个)-这可能吗?

ping specified ip ranges to txt at one time (not one after one) - is it possible?

我需要 ping 指定的 IP 范围,例如 - 从 192.168.1.41 到 192.168.1.50。并将其导出到 file.txt

我是新手,正在努力学习 'programming' 我有这样的东西:

file=something.txt
for IP in 192.168.1.{41..50}
do
echo "pinging ${IP}"
echo "PINGING ${IP} ">>${file}
ping -c 10 $IP >>${file}
done

但是它一个接一个地ping。我可以同时ping吗?

让你的代码异步:

for IP in 192.168.1.{41..50}
do
echo "pinging ${IP}" &
echo "PINGING ${IP} ">>${file} &
ping -c 10 $IP >>${file} &
done

如果您不满意,您还可以使用 xargs 并行化您的代码,但我认为这取决于线程数,因此您将受到限制:

for IP in 192.168.1.{41..50}
do
echo ${IP}
done | xargs -P 10 -n1  -I "ip_address" sh -c "ping -c 10 ip_address > ip_address.txt"