您的位置:首页 > 运维架构 > Linux

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

2016-02-23 14:24 519 查看
我们在前面的几章中已经学习了一些基本用法,现在来尝试  批量监控服务器是否存活。

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

代码

脚本代码如下:

#! /bin/bash

N=2
rmail=383965374@qq.com
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}'      用空白分割后  取第一列



所以代码的意思为:  循环取出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.sh
nohup sh /data/shell/check-ping.sh &
chmod  +x  给脚本 执行权限

nohup是后台运行的意思

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

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

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: