Shell脚本实战13-监控Memcached缓存服务

1. 需求

监控Memcached缓存服务是否正常,模拟用户(Web客户端)检测。

使用nc命令加上set/get来模拟检测。

2. 过程

2.1. 问题分析

要想写出相应的脚本,必须要对Memcached服务很熟练。

2.2. 环境准备

1
2
3
4
# yum install memcached -y
# yum install nc -y #<==用于探测端口及异地传输文件的工具
# memcached -uroot -m 16 -p 11211 #<启动Memecached服务
# netstat -lntup | grep memcache #<==查看是否启动成功

2.3. 参考解答

脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
if [ `netstat -lntup | grep 11211 | wc -l` -lt 1 ]
#<==若端口对应的行数小于1,则说明服务未启动
then
echo "Memcached Service is error."
exit 1
fi
printf "del key\r\n" | nc 127.0.0.1 11211 &> /dev/null #<==删除缓存中的key及对应的值
printf "set key 0 0 10 \r\ntheshu1234\r\n" | nc 127.0.0.1 11211 &> /dev/null #<==添加新值
McValues=`printf "get key\r\n" | nc 127.0.0.1 11211 | grep theshu1234 | wc -l`
if [ $McValues -eq 1 ]
then
echo "Memcached status is ok."
else
echo "Memcached status is bad."
fi

2.4. 执行结果

假如上面的脚本名为memcached.sh,则:

1
2
3
4
5
6
7
8
# sh memcached.sh
Memcached status is ok.
# pkill memcached
# sh memcached.sh
Memcached Service is error.
# memcached -uroot -m16m -d
# sh memcached.sh
Memcached status is ok.

0%