有时候管理员需要知道他管理的机器是否正常,需要在夜晚对所有的机器进行一次ping扫描,并生成报告,那可以使用下面的这个小程序了。
批量ping主机的bash程序
有时候管理员需要知道他管理的机器是否正常,需要在夜晚对所有的机器进行一次ping扫描,并生成报告,那可以使用下面的这个小程序了。
#cat pingall.sh

#!/bin/bash
#ping all host from /etc/hosts
#grab /etc/hosts and ping each address
cat /etc/hosts |grep -v '^#' |grep -v '^$'|while read LINE
do
address=`awk '{ print }'`
for machine in $address
do
ping -c 1 $machine
done
done
exit 0

该脚本从/etc/hosts文件获取ip地址信息(去掉注视和空行),如何逐一ping,由于linux下的ping命令是不停止的,因此使用-c参数来告诉ping命令只要ping一次就好了。
当然你可以从你需要的文件来获取ip地址。