通过memcached-tool可以监控memcached的当前状态,通过抓取它的evictions判断它是否内存溢出
具体脚本如下
#!/bin/sh
BASE=`dirname $0`
BAZA="172.16.131.167"
PORT="12000"
STATUS="init"
funcheck() {
for HOST in $1
do
EVICTIONS=`./memcached-tool $BAZA:$PORT stats 2>/dev/null | grep evictions | awk '{print $2}' | dos2unix`
echo $EVICTIONS
if [ $EVICTIONS -eq 0 ];then
STATUS="ok"
echo $STATUS
else
STATUS="bad"
fi
if [ "$STATUS" != "ok" ];then
smtpclient -S 172.16.60.72 -P 25 -f test@alibaba-inc.com -s 'manjushri memcached error' someone@alibaba-inc.com someone2@alibaba-inc.com <../bazalog
fi
done
}
funcheck "$BAZA"
当内存溢出时给someone和someone2发邮件预警