红联Linux门户
Linux帮助

初试shell script:探测局域网在线主机

发布时间:2012-10-08 14:16:58来源:红联作者:horsetornado
[i=s] 本帖最后由 horsetornado 于 2012-10-8 14:20 编辑 [/i]

#环境变量路径
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

#测试的网段是在192.168.4.0/24这个网段
network='192.168.4.'

#用于在线主机的计数
n=0

#进行遍历ping操作
for host in $(seq 1 254)
do
#每台主机ping一下
ping -c 1 -w 1 ${network}${host} &> /dev/null && result=0 || result=1
#在线主机
if [ "$result" = 0 ]; then
echo "Server ${network}${host} is UP"
let "n=$n+1"
#离线主机
else
echo "Server ${network}${host} is DOWN"
fi
done
#循环结束,显示在线主机的数目
echo "Number of Online Server is $n"

注意事项:
1、if后面要有个空格
2、判断条件[]内部两端都要有个空格
不然就会报“syntax error near unexpected token `then'”这样的错误
文章评论

共有 4 条评论

  1. agbbsagbbs 于 2012-10-23 22:32:22发表:

    (*^__^*) 嘻嘻……

  2. horsetornado 于 2012-10-10 10:32:52发表:

    3# Guest from 175.189.39.x
    目的是学习脚本,不是使用工具

  3. 于 2012-10-09 23:19:40发表:

    为什么不用nmap?

  4. rformance 于 2012-10-08 14:48:23发表:

    GOOD