Shell脚本实现并发快速查询在线IP

deer332025-07-02技术文章31

大家好,我是博哥爱运维。这节课给大家带来的是利用shell脚本,来实现并发查询一个网段内,所有在线的IP,并将在线和未在线的IP地址进行分类保存。

掌握内容:

1、ping命令的使用

2、shell脚本里面的并发编程

3、状态文件保存

并发特性:

1、根据for循环的条件,生成多个子进程来实现并发任务。

2、并发执行的最后,wait会等所有子进程返回结果后再退出主进程脚本。

源码如下:

#!/bin/bash
#__author__: boge

> ./ip_offline.txt
> ./ip_online.txt

if [ $# -ne 3 ];then
	echo "Usage: bash $0 10.0.1 1 254"
	exit 3
fi

pingnum=`seq $2 $3`
for i in $pingnum
do
{
  ping -c 1 -i 0.1 -W 1 $1.$i &> /dev/null
  if [ $? -eq 0 ];then
    echo "IP:   $1.$i is online."
    echo "$1.$i" >> ./ip_online.txt
  else
    echo "IP $1.$i is offline."|tee -a ./ip_offline.txt
  fi
}&
done
wait