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

最近想做个linux的系统监控,比如当磁盘空间到达一定时,进行短信报警,但又

暂时不想买设备,又不是SP,之前用过飞信API,但发现飞信老改API,麻烦,后来发现

139邮箱只要注册了,就可以实现只要往139邮箱发的,都可以实现短信提醒的功能!

下面简单小结下。

1先写个监视磁盘空间的脚本,下面只是示例而已

#!/bin/bash

shopt-s-onounset

partitions="/home/tmp"

From='root@localhost.localdomain'

To='你的手机号码@139.com'

Subject='分区使用通知'

Msgbody=

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

declare-iAlertPcent=5

declare-iTOTALTOTALavl

get_usedTotalPcent(){

localtmppcent

declare-ipcent

tmp=$(df-B1024K|grep${p}$|awk'{print$5}')

pcent=${tmp%\%*}

return$pcent

}

#秎盚硄

mailto(){

echo"$Msgbody"|mail-s"$Subject"$To

}

p=

pcent=

if[-n"$partitions"];then

forpin$partitions

do

get_usedTotalPcent$p

pcent=$?

#琌笷牡ボκだゑ

if[$pcent-ge$AlertPcent];then

get_usedTotalPcent$p

Msgbody=$Msgbody"分区$p目前使用量$TOTALMB,已达$pcent%,剩余空间$TOTALavlMB."

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,用虚拟机,基本都没啥延迟了