(做个记录避免忘记)
类型一:
ping一个文件里面的ip。如果可以ping通显示up,如果不能ping通显示down
#! /bin/bash
for ip in `cat iplist`
do
ping=`ping -c 1 $ip|grep loss|awk '{print $8}'|awk -F "%" '{print $1}'`
if [ $ping -eq 100 ];then
echo $ip is down
else
echo $ip is up
fi
done
解释一下:
for ip in `cat iplist` #这个是逐个读取iplist文件里的IP 这个文件最好一个IP写一行
ping=`ping -c 1 $ip|grep loss|awk '{print $8}'|awk -F "%" '{print $1}'`
#对读出来的ip ping一次,看是否ping通。并取出loss的百分比的值 也就是掉包的值 ,看是否掉包
if [ $ping -eq 100 ];then #看掉包的值是不是100,如果是100就是全部掉包,那就是没ping通,那就显示 ip is down,如果不等于100的话,就ping通了,就显示ip is up
类型二、ping 一个网段里面的主机显示哪些是通的,哪些是不通的。
#!/bin/bash
for ip in `seq 1 255`
do
ping=`ping -c 1 $ip|grep loss|awk '{print $8}'|awk -F "%" '{print $1}'`
if [ $ping -eq 100 ];then
echo 192.168.1.$ip is down
else
echo 192.168.1.$ip is up
fi
done
解释一下上面脚本,不一样的地方是下面这行:
for ip in `seq 1 255` #是取1~225之间的整数(包含1和225)
简单点写就是:
#!/bin/bash
for ip in `seq 1 255`
do
ping -c 1 192.168.1.$ip > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo 192.168.1.$ip is UP
else
echo 192.168.1.$ip is DOWN
fi
done
wait
类型三、拓展一个查看CPU信息:
预先经需要查看CPU信息的Ip写到iplist文件里面(注意这个文件的目录,本博文是将iplist和脚本放在同一个目录下,并到这个目录用./cpuinformation.sh的方式运行及脚本)。
#!/bin/bash
echo "IP CPU information CPU(s) Core(s) Socket(s)" >> listcpu
for ip in `cat iplist`
do
ping -c 1 $ip > /dev/null 2>&1
if [ $? -eq 0 ]; then
ssh $ip
A=`lscpu | grep '^CPU(s):' | awk -F ":" '{print$2}'`
B=`lscpu | grep 'Core(s) per socket:' | awk -F ":" '{print$2}'`
C=`lscpu | grep 'Socket(s):' | awk -F ":" '{print$2}'`
echo "$ip $A $B $C" >> listcpu
else
echo $ip is DOWN
fi
done
wait
结果输出到cpulist里面:
输出结果是:
IP CPU information CPU(s) Core(s) Socket(s)
192.168.*.** 1 1 1
192.168.*.** 1 1 1
192.168.*.*** 1 1 1
192.168.*.*** 1 1 1
如果要看CPU的其他参数,添加变量即可。