如何用脚本实现ping各个主机IP并显示该IP的hostname以及IP

概述

平时工作中如果没有监控系统,但是却要看各个主机IP是不是正在运行,会不会停机之类的情况时应该怎么办?可以用下面脚本来解决。

需求

当执行脚本host_ping.sh时,ping各个主机IP ,ping通,显示该IP的 hostname以及IP ,不能 ping 通,报错并显示 IP。

1.脚本内容:

#!/bin/bash Auto_Connect() { /usr/bin/expect << EOF set timeout 5 spawn ssh [email protected].$IP_NUM hostname expect { yes/no { send "yes\r";exp_continue } password { send "redhat\r" } } expect eof EOF } for IP_NUM in {160..227} do ping -c1 -w1 172.18.186.$IP_NUM &> /dev/null && { Host_Name=`Auto_Connect | grep -E "authenticity|fingerprint|connecting|password|spawn|Warning" -v` } echo "$Host_Name 172.18.186.$IP_NUM " | sed s/\r//g //将全文的/r换为空。 done

2.执行脚本

# sh host_ping.sh //成功 iZmfgnjkehk13uZ 172.18.186.160 ...

如果要监控多个IP只需要修改脚本内容加入多个ip后缀就可以了,后面小编会分享更多Linux方面内容,感兴趣的朋友走一波关注哩~