Shell脚本Ping监控主机是否存活并发邮件报警(三种方法)
#前提已经可以通过mail或mutt客户端发邮件
1.先安装sendmail来发邮件
# yum -y install sendmail# /etc/init.d/sendmail start# chkconfig sendmail on
2.再安装邮件客户端
# yum -y install mutt
2.1 为了更好在邮件中显示,设置mutt客户端发送信息
# vim /etc/Muttrcset charset="utf-8" #设置发邮件编码set envelope_from=yesset rfc2047_parameters=yes #解决附件乱码问题set realname="报警" #发件人别名set use_from=yes #指定是否显示别名set from=monitor@test.com #发送人地址
方法1、通过加失败计数器来判断(误报率低)
#!/bin/bash DATE=`date +%F" "%H:%M` IP=/root/monitor/ip.txt #ip地址表 MAIL=zhenliang369@163.com for ip in $(cat $IP | sed '/^#/d') dofor ((i=1;i<=3;i++))doping -c 1 $ip &>/dev/null[ $? -ne 0 ] && let FailCount+=1;done done [ -z $FailCount ] && FailCount=0 #当ping都正常时,FailCount值为空,就设置FailCount值为0,用整数比较 if [ $FailCount -eq 2 ];then#echo "$IP ping is failed."echo -e "Date : $DATE\nHost : $ip\nProblem : Ping is failed, Please check ! ! !" | mutt -s "Ping Monitor" $MAIL fi
#添加任务计划
# crontab -e
*/1 * * * * /root/monitor/ping.sh
done
方法二、通过ping一个包的状态判断(误报率低,建议此方法)
#!/bin/bash MAIL="baojingtongzhi@163.com huangxiaohong@loongtao.com" for ip in $(cat ip_list|sed "/^#/d") #ip_list是当前目录下IP表doping -c 1 $ip &>/dev/null #三个ping有一个能通,说明服务器正常a=$?sleep 2ping -c 1 $ip &>/dev/nullb=$?sleep 2ping -c 1 $ip &>/dev/nullc=$?sleep 2DATE=$(date +%F" "%H:%M)if [ $a -ne 0 -a $b -ne 0 -a $c -ne 0 ];thenecho -e "Date : $DATE\nHost : $ip\nProblem : Ping is failed." | mail -s "Ping $ip failed From 255.252" $MAIL#else# echo "$ip ping is successful."fi done
方法三、通过丢包率来判断是否正常(误报率高)
#!/bin/bash while true doDATE=`date +%F" "%H:%M`MAIL="zhenliang369@163.com"for ip in $(cat ip_list|sed "/^#/d") #ip_list是当前目录下IP表 donum=$(ping -c 2 $ip |grep "100% packet loss" |wc -l) if [ $num == 1 ];thenecho -e "Date : $DATE\nHost : $i\nProblem : Ping is failed." | mail -s "Ping $i failed From 255.252" $MAILfidone sleep 30 done
Shell脚本Ping监控主机是否存活并发邮件报警(三种方法)相关推荐
- 【Shell脚本】正确认识通过sh、./和source三种方式运行shell脚本的区别并据此定义和使用shell库函数
文章目录 1. 从代码块到函数 2. 从函数到函数库 3. 定义 shell 函数库 4. 使用 shell 函数库 1. 从代码块到函数 在一个 shell 脚本中,你可以通过将具有独立功能的代码块 ...
- Shell 脚本调用另一个脚本的三种方法
文章目录 1.source 2.点号. 3.sh 命令 4.三者的区别 5.export 命令设置临时环境变量 6.export 命令设置永久环境变量 参考文献 假如有脚本 first.sh: #!/ ...
- shell脚本执行时报“bad interpreter: Text file busy“的解决方法
shell脚本执行时报"bad interpreter: Text file busy"的解决方法 参考文章: (1)shell脚本执行时报"bad interprete ...
- linux 循环 cpu使用率脚本,监控CPU使用率的三种方法(shell脚本)
监控CPU使用率的三种方法(shell脚本),供大家学习参考. 方法一: 复制代码 代码如下: #!/bin/sh #监控CPU使用率 #Written by Chameleon #Http://ch ...
- linux下logcat命令,Android shell命令行中过滤adb logcat输出的几种方法
我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb lo ...
- RedHat 7.0及CentOS 7.0禁止Ping的三种方法
作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=538 前言: "Ping"属于ICMP协议(即"Internet控制报文协议") ...
- java7 javascript引擎_Java7中脚本引擎的一般用法,共三种方法获得JavaScript引擎:名称、文件扩展名、MIME类型 | 学步园...
package com.sino.java7; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; i ...
- python脚本判断一个数是否为素数的几种方法
质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念 ...
- 网络监控cacti1.2.12邮件报警(三)
网络监控cacti1.2.12邮件报警(三) 网络监控cacti1.2.12安装部署(一) 网络监控cacti1.2.12监控配置(二) 网络监控cacti1.2.12邮件报警(三) 网络监控cact ...
最新文章
- EKF优化:协方差coff公式、意义、SLAM中的Code优化
- java me基础教程 pdf_Java ME手机应用开发技术与案例详解 PDF
- linux缩小lv发生文件系统错误
- 终端执行php,PHP命令行执行PHP脚本的注意事项总结
- Unity2018新功能抢鲜 | C# Job System Ⅱ
- 103.及时清除缓存
- hive 中String对长度没有限制
- stm32串口c语言程序,STM32串口通信-代码实现
- java成语填充,java - 什么是“执行”这个成语?
- 【EXLIBRIS】关于我现有的大部分PDF书目以及共享
- 基于深度学习技术的AI输入法引擎
- kubernetes 网络组件 calico 运行原理分析
- 控制台调出Servers
- 为什么那么多程序员害怕Python?
- easyrecovery2023电脑文件数据恢复软件功能介绍
- 百度自动驾驶巴士开启收费运营
- 网赚项目之站群第四课站群的文章采集与伪原创
- 如何压缩ppt文件大小?
- 百度网盘高速下载器提示:高速受限!建议重新注册网盘账号使用
- 2022微软暑期实习笔试