`

使用linux shell+sendmail+139邮箱实现定时短信报警

阅读更多
最近想做个linux的系统监控,比如当磁盘空间到达一定时,进行短信报警,但又
暂时不想买设备,又不是SP,之前用过飞信API,但发现飞信老改API,麻烦,后来发现
139邮箱只要注册了,就可以实现只要往139邮箱发的,都可以实现短信提醒的功能!
下面简单小结下。

1 先写个监视磁盘空间的脚本,下面只是示例而已
  #! /bin/bash
shopt -s -o nounset

partitions="/home /tmp"

From='root@localhost.localdomain'

To='你的手机号码@139.com'
Subject='分区使用通知'
Msgbody=

//设置为5%就报警了,这里设置小点,看到效果
declare -i AlertPcent=5

declare -i TOTAL TOTALavl

get_usedTotalPcent() {
    local tmp pcent
    declare -i pcent
tmp=$(df -B 1024K | grep ${p}$ | awk '{print $5}')
    pcent=${tmp%\%*}
    return $pcent
}


# 秎盚硄
mailto() {
   echo "$Msgbody" | mail  -s "$Subject" $To
}


p=
pcent=
if [ -n "$partitions" ]; then
   for p in $partitions
   do
      get_usedTotalPcent $p
      pcent=$?

      # 琌笷牡ボκだゑ
      if [ $pcent -ge $AlertPcent ]; then
               get_usedTotalPcent $p
         Msgbody=$Msgbody"分区$p目前使用量 $TOTAL MB,已达 $pcent%,剩余空间 $TOTALavl MB."
      fi
   done
   if [ -n "$Msgbody" ]; then
      Msgbody="hello "$Msgbody
      mailto
   fi
fi


2 如果你喜欢配置sendmail,可以配置,但我新手,甚至连sendmail也不配置了,直接
用root@localhost.domain去发了,下文会继续讲解。

3 把脚本放到定时计划任务里

4 在你的139邮箱(mail.139.com,任何手机都可以申请)中,设置好手机里的邮件到达通知,并记得设置好白名单,比如我这里设置为root@localhost.domain了,这样才不会当垃圾邮件,还要设置后每天多少点是允许收到邮件达到短信提醒的,设置好后,
那就一起OK了

5 我试过,在家里的ADSL,用虚拟机,基本都没啥延迟了
8
1
分享到:
评论
2 楼 snowolf 2011-01-03  
好文!同样的需求!
1 楼 Yangёr⌒ 2010-12-30  
可以使用Java Wrapper + JavaMail + 139邮箱 做成服务形式的一个通用报警系统

相关推荐

Global site tag (gtag.js) - Google Analytics