一个ping检测告警函数代码_linux shell

复制代码 代码如下:

#!/bin/bash
 ping_monitor()
    {
    host_=(203 204 205 207 208 209 210 212 213 214 215 216 217 218 219 220 221)
    ping_count=3
    called=(13000000001 13000000002 13000000003)
    calling=13000000000
    callop=1310000000
    #main------------------------------------------------------------
    echo "`date "+%Y%m%d %H:%M:%S"`----->脚本开始执行......">>ping_log
    for host_1 in ${host_[*]};do
       host=192.168.1.$host_1
       echo "-------->开始检测$host服务器通迅是否正常,ping次数$count"
       ping_result=`ping $host -c $ping_count |tail -2 |head -1`
       #sleep 1
       echo "-------->服务器$host检测已完成"
       #取成功条数
       succ_ping=`echo ${ping_result:23:1}`
       #取失败百分比
       loss_ping=`echo ${ping_result:46:4}`
          if [ $succ_ping -eq $ping_count ];then
             echo "本次检测结果---->$host服务器ping检测正常"
             echo "`date "+%Y%m%d %H:%M:%S"`--->$host服务器ping检测正常" >>ping_log
          else
             echo "本次检测结果---->$host服务器有丢包现象,丢包率为:$loss_ping"
             echo "`date "+%Y%m%d %H:%M:%S"`--->$host服务器有丢包现象,丢包率为:$loss_ping" >>ping_err_log
             #插入短信表—smssend00
             for called in ${telno[*]};do
    mysql -h$dbhost -u$dbuser -p$dbpass -D$dbbase <<GETRECODE
        INSERT INTO $dbtable (servercode,smsservercode,groupid,priority,calling,called,payer,orderdatetime,senddatetime,effectstarttime,
    effectendtime,effectstarttime2,effectendtime2,invaliddatetime,feevalue,iffee,message,hideflag,msgtype,smsfeetype,ifsmsreport,service
    type,morelatetomtflag,reserve,optempid,optuserid,clientprogramtype,optcode,optip,remark)
      VALUES
    (2,2,1,0,'$calling','$called','$callop',Now(),Now(),'00:00:00','23:59:59',NULL,NULL,NULL,0,1,'服务器告警!!$host服务器检测到有丢包现像,丢包率:$loss_ping',0,1,2,0,'2_2',NULL,NULL,1,668,1,3001,'192.168.1.182',NULL)
    GETRECODE
              done
           fi
    done
       echo "`date "+%Y%m%d %H:%M:%S"`----->脚本运行完毕......">>ping_log
    }

时间: 2024-10-30 09:06:21

一个ping检测告警函数代码_linux shell的相关文章

分享一个入门级可控多线程shell脚本代码_linux shell

说到shell可控多线程,网上分享的大部分是管道控制的方案.这种方案,张戈博客也曾经实战并分享过一次:<Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点>,感兴趣的朋友可以看看. 分享一个入门级可控多线程shell脚本方案 下面张戈博客再分享另一种更容易理解的入门级可控多线程shell脚本方案:任务切割.各个击破. 先来 1 段场景描述: 某日,在鹅厂接到了这个任务,需要在Linux服务器中,对几千个IP进行一次Ping检测,只要取得ping可达的IP就好.如果单个IP去pi

shell写的告警次数控制及恢复示例代码_linux shell

俺也是新手,写的有点老土,权当练手了,供初学的朋友们参考吧. 复制代码 代码如下: #!/bin/bashif [ $succ_ping -gt $((ping_count-1)) ];thenif [ -f ./alarm_file/alarm_$host ];then  rm -rf ./alarm_file/alarm_$host  #发送故障消除短信通知--调用insert_table  messages="$host服务器通迅恢复正常`date "+%Y%m%d %H:%M:

Shell脚本函数定义和函数参数_linux shell

一.Shell函数 本教程目前为止所有脚本都是从头到尾执行.这样做很好,但你也许已经注意到有些脚本段间互相重复. shell允许将一组命令集或语句形成一个可用块,这些块称为shell函数. shell中函数的定义格式如下: 复制代码 代码如下: 函数名(){     command1     command2     ...     commandN     [ return value ] } 如果愿意,可在函数名前加上关键字function,这取决于使用者. 复制代码 代码如下: funct

linux多线程编程详解教程(线程通过信号量实现通信代码)_linux shell

线程分类 线程按照其调度者可以分为用户级线程和核心级线程两种. (1)用户级线程 用户级线程主要解决的是上下文切换的问题,它的调度算法和调度过程全部由用户自行选择决定,在运行时不需要特定的内核支持.在这里,操作系统往往会提供一个用户空间的线程库,该线程库提供了线程的创建.调度.撤销等功能,而内核仍然仅对进程进行管理.如果一个进程中的某一个线程调用了一个阻塞的系统调用,那么该进程包括该进程中的其他所有线程也同时被阻塞.这种用户级线程的主要缺点是在一个进程中的多个线程的调度中无法发挥多处理器的优势.

linux中常用脚本和函数分享_linux shell

#查找当前目录中是否存在指定目录,若不存在,则创建之 复制代码 代码如下: function mkdir_1{  if test ! -d $1    then     mkdir $1  fi} #指定文件中的"prefix = .*"串替换为"prefix=/home/gnome-unicore-install2/usr/" #可以用来作为sed用法的参考 复制代码 代码如下: function modify_prefix {   chmod +w $1   

一个简单的转换输出的shell脚本代码_linux shell

一个简单的转换输出的shell脚本,从健盘输入 a,b,c 这种格式  输出如下格式:a c 复制代码 代码如下: #!/bin/bashread -p '请输入:'echo $REPLY >.tmp5count=`grep -o ',' .tmp5 |wc -l`echo $countcount_=$((count+1))i=1:>.tmp1while [ $i -le $count_ ]do   echo $i   awk -F, -v j="$i"  '{print$

ping发现掉包报警的shell代码_linux shell

复制代码 代码如下: #!/bin/bash PING=`which ping` DATE=`date +%Y%m%d%H%M` TAIL=`which tail` LOG=./ping$DATE.log HOSTS="selboo.com.cn 221.130.191.97" COUNT=200 for myHost in $HOSTS do count=$(ping -c $COUNT $myHost | grep 'loss' | awk -F',' '{ print $3 }'

检测网站down掉后自动发信的shell脚本代码_linux shell

复制代码 代码如下: #!/bin/bash#website test scriptswhile true;do        for cycle_temp in `cat url_list`        do                if  lynx -dump `echo ${cycle_temp}` -accept_all_cookies|grep "true";then                        echo "The website is r

expect自动检测并重启另外一台服务器上的程序代码_linux shell

[s005 you] # cat haproxy_expect 复制代码 代码如下: #!/usr/bin/expectset ssh_user "fivetrees"set password "123456"spawn ssh -i /root/.ssh/$ssh_user Server004.xd.comexpect_before "no)?" {send "yes\r" }sleep 0.5expect "En