需求描述:
- 使用shell将网段 192.168.1.x网段设备在线情况
- 将正在使用的ip保存到up.txt中
- 将未使用的ip保存到down.txt中
使用的知识:
for循环
for i in `seq 1 254`;do xxx done #循环语句使用for 语句主体do开始 done结束
seq命令
seq 1 254 #从1到254依次循环读取
ping命令
ping -c 2 ipaddress #-c表示ping的次数
条件语句
if [ x -eq 1];then xx else xx fi #if条件之后使用的是分号,条件语句使用if开始 fi结束
程序主体:
vi ping.sh
#/bin/sh
IPaddr="192.168.1" #在shell中=前后不要又空格 不然可能报错 变量赋予的值需要双引号引起来
for i in `seq 1 254`
do
pingtime=`ping -c 2 $IPaddr.$i |grep -i '100% packet lost'|wc -l`
if [ pingtime -eq 1];then
echo $IPaddr.$i " ip未使用">>/opt/down.txt
else
echo $IPaddr.$i " ip正在使用">>/opt/up.txt
fi
done
浙公网安备 33010602011771号