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
我们先来了解一下ping命令
-c 数目:在发送指定数目的包后停止。
ping -c4 意思是只ping4次。
grep 'transm' 只取含有 transm 字符串的行
awk -F ',' '{print $2}' 用‘,’号分割后 取第二列
awk '{print $1}' 用空白分割后 取第一列
![](https://oscdn.geek-share.com/Uploads/Images/Content/201602/23/1f576732f1c21ef199283a87c84a2d8f)
所以代码的意思为: 循环取出serverip.txt中的ip,进行ping并返回 ping通的次数。
如果ping通的次数小于或者等于2则把 ip 和 ping的内容 写入到报错文件pkgloss.txt中
并把pkgloss.txt中的内容 发送到 383965374@qq.com邮箱中。
vim /data/shell/check-ping.sh
写入以上代码
创建serverip.txt
#这个文件是放要监控服务器的ip. 写入ip,格式如下图
![](https://oscdn.geek-share.com/Uploads/Images/Content/201602/23/bca3b92d89072925236407717a84f10a)
再创建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不通。
测试运行后成功报警,如下图 :
基本的思路是 用 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.shvim /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实战(九)----批量监控服务器是否存活----综合运用
- linux 回收站的路径
- linux挂载windows共享目录
- Centos 6.4 安装flume
- Centos 6.5 安装配置Mysql MHA
- CentOS7.0分布式安装HADOOP 2.6.0笔记
- centos6.5下忘记mysql密码
- 学习linux计划书
- 【FAQ】Linux、Mac上把时间戳转化成可读时间命令不一样?
- 嵌入式linux pthread_create() 出现segmentation fault。
- 《linux内核分析》作业一:反汇编一个C语言程序并分析汇编代码执行过程
- sles11sp2 heartbeat 和pacemaker 安装以及使用
- linux内核驱动中读写函数
- 未备份etc下ssh目录之设置节点间无密码访问步骤
- SMC计算节点重刷系统步骤
- SMC管理节点升级步骤
- Linux常用命令(一)
- Linux df命令
- xfsdump备份测试
- linux并行集群的搭建