linux实战(九)----批量监控服务器是否存活----综合运用




我们在前面的几章中已经学习了一些基本用法,现在来尝试  批量监控服务器是否存活。


基本的思路是 用 ping 的方法。 如果服务器能ping通则说明服务器存活。



代码

脚本代码如下:

#! /bin/bash

N=2
[email protected]
while true
do
        ipfile=/data/shell/serverip.txt

        for ip in `cat $ipfile`; do

                mailfile=/data/shell/pkgloss.txt

                pkgloss=`ping -c4 $ip |grep 'transm' |awk -F ',' '{print $2}' |awk '{print $1}'`

                if [ $pkgloss -lt $N ]; then

                echo $ip >$mailfile

                ping -c4 $ip |grep 'transm' >>$mailfile               
 
               mail -s "$ip loss packets"  $rmail<$mailfile

                fi

        done

        sleep 120


done


代码解析

我们这里每睡眠 120 ms后 就执行一次 监控,所以需要用 while true无线循环。
我们先来了解一下ping命令

-c 数目:在发送指定数目的包后停止。

ping -c4   意思是只ping4次。

grep  'transm'   只取含有  transm 字符串的行

awk -F ',' '{print $2}'  用‘,’号分割后 取第二列

awk   '{print $1}'      用空白分割后  取第一列

linux实战(九)----批量监控服务器是否存活----综合运用_第1张图片


所以代码的意思为:  循环取出serverip.txt中的ip,进行ping并返回 ping通的次数。

如果ping通的次数小于或者等于2则把 ip 和  ping的内容 写入到报错文件pkgloss.txt中

并把pkgloss.txt中的内容 发送到   [email protected]邮箱中。




运行脚本步骤

创建脚本check-ping.sh

vim  /data/shell/check-ping.sh

写入以上代码



创建serverip.txt

vim /data/shell/serverip.txt 

 #这个文件是放要监控服务器的ip. 写入ip,格式如下图





再创建pkgloss.txt

touch /data/shell/pkgloss.txt  

#这个文件是放报错信息的.



最后执行脚本

chmod +x  /data/shell/check-ping.sh
nohup sh  /data/shell/check-ping.sh &

chmod  +x  给脚本 执行权限

nohup是后台运行的意思


好了,这下就不怕服务器再被莫名重启了.


我这里写了3个ip,前两个可以ping通,192.168.1.22不通。

测试运行后成功报警,如下图 :




你可能感兴趣的:(linux,shell,服务器,ping,监控)