使用linux shell+sendmail+139邮箱实现定时短信报警
最近想做个linux的系统监控,比如当磁盘空间到达一定时,进行短信报警,但又
暂时不想买设备,又不是SP,之前用过飞信API,但发现飞信老改API,麻烦,后来发现
139邮箱只要注册了,就可以实现只要往139邮箱发的,都可以实现短信提醒的功能!
下面简单小结下。
1先写个监视磁盘空间的脚本,下面只是示例而已
#!/bin/bash
shopt-s-onounset
partitions="/home/tmp"
From='[email protected]'
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也不配置了,直接
用[email protected]去发了,下文会继续讲解。
3把脚本放到定时计划任务里
4在你的139邮箱(mail.139.com,任何手机都可以申请)中,设置好手机里的邮件到达通知,并记得设置好白名单,比如我这里设置为[email protected]了,这样才不会当垃圾邮件,还要设置后每天多少点是允许收到邮件达到短信提醒的,设置好后,
那就一起OK了
5我试过,在家里的ADSL,用虚拟机,基本都没啥延迟了