并发控制测试远程主机连接
设置最高同时并发数为5
最终效果为五条五条显示
#!/usr/bin/bash
#ping01
#by racon 2022-04-21
# 同时并发数
thread=5
# 管道
tmp_fifofile=/tmp/$$.fifo
mkfifo $tmp_fifofile # 创建管道
exec 8<> $tmp_fifofile # 创建文件句柄
rm $tmp_fifofile # 删除管道文件,只保留句柄
for i in `seq $thread`
do
echo >&8
done
for i in {1..254}
do
read -u 8
{
ip=192.168.220.$i
ping -c1 -W1 $ip &> /dev/null
if [ $? -eq 0 ];then
echo "$ip is up."
else
echo "$ip is down."
fi
echo >&8
}&
done
wait
exec 8>&-
echo "all finished"