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

来源:互联网 发布:新浪体育英超数据库 编辑:程序博客网 时间:2024/06/06 02:37




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


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



代码

脚本代码如下:

#! /bin/bashN=2rmail=383965374@qq.comwhile truedo        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 120done


代码解析

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

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

ping -c4   意思是只ping4次。

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

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

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



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

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

并把pkgloss.txt中的内容 发送到   383965374@qq.com邮箱中。




运行脚本步骤

创建脚本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.shnohup sh  /data/shell/check-ping.sh &

chmod  +x  给脚本 执行权限

nohup是后台运行的意思


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


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

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




1 0
原创粉丝点击