场景:CMDB导出的机房EXECL表,要快速巡检下其中的ip是否通。
实现:
1.通过复制IP列里的所有IP到txt文本文件里
2.再通过shell脚本多线程来加速执行ping得出结果。
脚本如下:
#!/bin/bash
ip=(`cat $1`)
ping_log="/tmp/ping.log"
: > $ping_log
echo "ping log:" > ./ping.txt
for i in ${ip[@]}
do
i=${i%%/*}
ping -c 2 -w 1 -W 1 $i | grep -q "ttl=" && echo "$i [yes]" >> $ping_log || echo -e "\033[36m$i [no]\033[0m" >> $ping_log &
done
echo "wait 5s...."
sleep 5
cat $ping_log
例如:ip记录文件ip_list.txt 、执行脚本文件ip_ping.sh
调用方式:# ./ip_ping.sh ip_list.txt