linux - 一次将指定的IP范围ping到txt(不是一个接一个)-可能吗?
问题描述
我需要 ping 指定的 IP 范围,例如 - 从 192.168.1。41到 192.168.1。50 . 并将其导出到 file.txt
我是新手,我正在尝试学习“编程”我有这样的事情:
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"
推荐阅读
- javascript - 断言参数
- mysql - NodeJS 无法连接到 Docker 容器内的 MYSQL
- javascript - 在 JavaScript 中是否有可能获得对唯一 DOM 元素的唯一引用(用作对象中的唯一键)?
- visual-studio - 如何使用 Visual Studio 2017 编译汇编代码?
- r - R-markdown 不能更改工作目录。用于正常工作
- c# - 在 C# 中将阶乘表示为分母
- nativescript - 如何修复 nativescript 中的图像标签协议错误?
- c# - c#将位图传递给Task而不等待
- android - 无法在 Android Studio 中连接到 Firebase
- ios - Xamarin 表单检查 iOS 上的 wifi 连接