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