linux利用mailx发送告警邮件提示断网

先规划流程

1. 邮箱开启POP3/SMTP/IMAP服务自行研究这里用腾讯QQ邮箱作为演示smtp.qq.com

2. 系统安装mailx 工具

3.编写相关循环检测某个外网地址

环境: 

    CentOS7.6  双网其中一路可以访问外网邮件服务器,同时内网业务需要保证网络在线。

yum install mailx -y

之后打开配置文件在最后一行添加SMTP 服务器信息

vim /etc/mail.rc

# set smtp address

set from="你的邮箱地址@qq.com"

set smtp="smtp.qq.com"    # 这里填QQ的服务器请自己修改

set smtp-auth-user="你的邮箱地址@qq.com"

set smtp-auth-password="开通STMP服务器时候给的加密密码"

set smtp-auth=login

之后wq保存测试一下发送邮件,注意 前面是邮件内容 “|”  后面是邮件标题

echo -e "专线网络已断开,请检查"   | mail -s 'network error'  收件人的邮箱地址@qq.com


编写shell 脚本,这种脚本网上很多我就不重复造轮子了直接找了个大佬写好的修改了一下,诸位请自行修改相关告警内容和发送地址即可

vim  mailStmp.sh 

#!/usr/bin/env bash

#初始化环境变量

source /root/.bash_profile

#邮件发送列表

mail_list='收件人的邮箱地址@qq.com'

#ping三次检测的ip

ping=`ping -c 3 70.4.0.1|awk 'NR==7 {print $4}'`

#如果三次均没ping通,则做以下操作

if [ $ping -eq 0 ]

then

  #检查mailinfo文件是否存在,不存在则建立

  if [ ! -e ./mailinfo ]

  then

  touch ./mailinfo

  fi

  #获取当前主机时间,用于邮件正文的时间显示

  now_time=`date`

  #检查./mailinfo的行数是否为空,如果为空则直接发送邮件

  row_num=`wc -l ./mailinfo | cut -c 1`

  if [ $row_num -eq 0 ]

    then

    echo "发邮件"

    echo -e "专线网络已断开,请检查 \n\n 告警时间:$now_time"  |mail -s 'network error' $mail_list

    #更新最后一次发送时间

    date +%Y%m%d-%H%M > ./mailinfo

    echo 1 >> ./mailinfo

  #如果mailinfo内容不为空,则判断(当前时间减1小时)是否大于上次发送时间,如果是则发邮件

  else

    #获取上次发邮件的日期和时间

    last_date=`head -1 ./mailinfo | cut -c 1-8`

    last_time=`head -1 ./mailinfo | cut -c 10-13`

    #获取1小时前的日期和时间

    current_date=`date +%Y%m%d`

    current_time=`date +%H%M`

    #计算当前时间和上次时间差距多久,加10#是为了防止0开头的字符被当成8进制计算

    let time_diff=10#$current_time-10#$last_time

    #获取发送次数

    send_times=`tail -1 ./mailinfo`

      #以下四种情况发邮件:

      #当前日期>上次日期,可以发,然后发送计数send_times置为1

      if [ "$current_date" -gt "$last_date" ]

        then

        echo "发邮件"

        echo -e "专线网络已断开,请检查 \n\n 告警时间:$now_time"  |mail -s 'luchen network error' $mail_list

        #更新最后一次发送时间

        date +%Y%m%d-%H%M > ./mailinfo

        echo 1 >> ./mailinfo

      fi

      #当前日期等于上次日期 and 本次时间大于上次时间1小时外,可以发,然后发送计数send_times置为1

      if [ "$current_date" -eq "$last_date" -a $time_diff -ge 100 ]

        then

        echo "发邮件"

        echo -e "70专线网络已断开,请检查 \n\n 告警时间:$now_time"  |mail -s 'network error' $mail_list

        #更新最后一次发送时间

        date +%Y%m%d-%H%M > ./mailinfo

        echo 1 >> ./mailinfo

      fi

      #当前日期等于上次日期 and 发送计数send_times置为1,可以发,然后发送次数加1

      if [ "$current_date" -eq "$last_date" -a $send_times -eq 1 ]

        then

        echo "发邮件"

        echo -e "70专线网络已断开,请检查 \n\n 告警时间:$now_time"  |mail -s 'network error' $mail_list

        #更新最后一次发送时间

        date +%Y%m%d-%H%M > ./mailinfo

        echo 2 >> ./mailinfo

      fi

      #当前日期等于上次日期 and 发送计数send_times置为2,可以发,然后发送次数加1

      if [ "$current_date" -eq "$last_date" -a $send_times -eq 2 ]

        then

        echo "发邮件"

        echo -e "专线网络已断开,请检查 \n\n 告警时间:$now_time"  |mail -s 'network error' $mail_list

        #更新最后一次发送时间

        date +%Y%m%d-%H%M > ./mailinfo

        echo 3 >> ./mailinfo

      fi

  fi

fi

写好后也请先断网手动触发测试一下shell 脚本

bash  mailStmp.sh


crontab -e  定时任务内新增一条

# 每小时执行一次检测专线是否有问题并邮件告警

0  */1  * * * /home/root/mailStmp.sh >> /tmp/maliStmpLog.log 2>&1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容