由于一台WEB服务器的Memcached死掉而导致在访问网站的某些页面时候打不开,下面脚本会自动检测Memcached的进程,如果挂掉则自动重启Memcached服务。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<code>cat</code> <code>/root/sh/memcached_check</code><code>.sh</code>
<code>#!/bin/sh</code>
<code>#check memcached process and restart if down</code>
<code>PATH=$PATH:</code><code>/opt/env/memcache/bin/memcached</code>
<code>DATE=`</code><code>date</code> <code>-d </code><code>"today"</code> <code>+</code><code>"%Y-%m-%d-%H:%M"</code><code>`</code>
<code>#用ps命令查看memcached进程</code>
<code>MM=`</code><code>ps</code> <code>-aux |</code><code>grep</code> <code>"memcached"</code> <code>|</code><code>grep</code> <code>"11211"</code> <code>|</code><code>grep</code> <code>-</code><code>v</code> <code>"grep"</code> <code>|</code><code>wc</code> <code>-l`</code>
<code>#if语句判断进程是否存在,如果不存在,输出日志记录并重启memcached服务</code>
<code>if</code> <code>[ </code><code>"$MM"</code> <code>== </code><code>"0"</code> <code>]; </code><code>then</code>
<code> </code><code>echo</code> <code>"$DATE The memcached is problem and restart"</code> <code>>> </code><code>/root/sh/memcached_check</code><code>.logs</code>
<code>/opt/env/memcache/bin/memcached</code> <code>-t 8 -d -m 2048 -p 11211 -u nobody</code>
<code> </code><code>else</code>
<code>#echo "$DATE The memcached is ok" >>/root/sh/memcached_check.logs</code>
<code>fi</code>
<code>#添加计划任务,每5分钟检测一次。</code>
<code>*</code><code>/5</code> <code>* * * * </code><code>/bin/bash</code> <code>/root/sh/memcached_check</code><code>.sh</code>
本文转自 sfzhang 51CTO博客,原文链接:http://blog.51cto.com/sfzhang88/874388,如需转载请自行联系原作者