教程集 www.jiaochengji.com
教程集 >  脚本编程  >  shell  >  正文 监控memcached进程启动与否的shell脚本

监控memcached进程启动与否的shell脚本

发布时间:2014-12-10   编辑:jiaochengji.com
分享一例用于监控memcached进程是否启动的shell脚本,用于memcache的启动、停止与重启等操作,有需要的朋友参考下。

1,memcached_inc.sh 设置路径,端口等讯息。
代码:
 

复制代码 代码示例:
#!/bin/sh 
 
#config include 
 
HOST=$(hostname) 
SITE="mysite" 
PORT=11211 
 
MEMCACHED_PID_FILE="/tmp/memcached.pid" 
MEMCACHED_DAEMON_PID_FILE="/tmp/memcached_daemon.pid" 
 
MEMCACHED="memcached -d -m 64 -p $PORT -u memcache -l 127.0.0.1 -P $MEMCACHED_PID_FILE" 
MEMCACHED_DAEMON_FILE="memcached_daemon.sh" 
 
ERROR_LOG_FILE="${ROOT}/memcached_${SITE}_${HOST}_${PORT}.log" 

2,gm_memcached.sh 控制memcached 启动,停止,重启。
 

复制代码 代码示例:

#!/bin/sh 
# site: www.jiaochengji.com 
#memcached start and stop 
#$1 action 
 
ROOT=$(cd "$(dirname "$0")"; pwd) 
. ${ROOT}/memcached_inc.sh 
 
start() { 
    if [ -f "$MEMCACHED_PID_FILE" ] && [ -s "$MEMCACHED_PID_FILE" ]; then 
        printf "memcached already running\n" 
    else 
        printf "starting memcached\n" 
        $MEMCACHED 
 
        sleep 2 
 
        PID=$(cat $MEMCACHED_PID_FILE) 
        printf "memcached is started PID:$PID\n" 
 
        printf "starting memcached daemon\n" 
        ${ROOT}/${MEMCACHED_DAEMON_FILE} & 
        DAEMON_PID=$! 
        echo ${DAEMON_PID} > ${MEMCACHED_DAEMON_PID_FILE} 
        printf "memcached daemon is started PID:${DAEMON_PID}\n" 
    fi

 
stop() { 
    if [ -f "$MEMCACHED_DAEMON_PID_FILE" ] && [ -s "$MEMCACHED_DAEMON_PID_FILE" ]; then 
        DAEMON_PID=$(cat $MEMCACHED_DAEMON_PID_FILE) 
        rm -f ${MEMCACHED_DAEMON_PID_FILE} 
        if [ ! -z ${DAEMON_PID} ]; then 
            kill -9 ${DAEMON_PID} 
        fi 
        printf "memcached daemon is stopped\n" 
    else 
        printf "no memcached daemon running\n" 
    fi 
 
    sleep 1 
 
    if [ -f "$MEMCACHED_PID_FILE" ] && [ -s "$MEMCACHED_PID_FILE" ]; then 
        PID=$(cat $MEMCACHED_PID_FILE) 
        rm -f ${MEMCACHED_PID_FILE} 
        if [ ! -z ${PID} ]; then 
            kill -9 ${PID} 
        fi 
        printf "memcached is stopped\n" 
    else 
        printf "no memcached running\n" 
    fi

case "$1" in 
    start) 
        start 
        ;; 
    stop) 
        stop 
        ;; 
    restart) 
        stop 
        sleep 3 
        start 
        ;; 
    *) 
        printf "Usage:$0 {start|stop|restart}\n" 
        exit 1
esac
exit 0 

3,memcached_daemon.sh 监控memcached 进程,如进程失效则自动启动。
代码:
 

复制代码 代码示例:
#!/bin/sh 
#site; www.jiaochengji.com
#memcached daemon 
 
ROOT=$(cd "$(dirname "$0")"; pwd) 
 
. ${ROOT}/memcached_inc.sh 
 
while : 
do 
    if [ -f "$MEMCACHED_PID_FILE" ] && [ -s "$MEMCACHED_PID_FILE" ]; then 
        PID=$(cat $MEMCACHED_PID_FILE) 
    else 
        PID="" 
    fi 
    
    if [ -z "$PID" ] || [ -z $(ps aux|awk '{print $2}' | grep "^$PID$") ]; then 
        $MEMCACHED 
        sleep 1 
        printf "[$(date +%Y-%m-%d' '%H:%M:%S)] ${SITE} ${HOST} memcached ${PORT} is restarted\n" >> $ERROR_LOG_FILE 
        echo "Subject: ${SITE} ${HOST} memcached ${PORT} is restarted $(date +%Y-%m-%d' '%H:%M:%S)" | sendmail me@gmail.com 
    fi 
    sleep 5 
done 
exit 0 

调用方法:
 

复制代码 代码示例:
./gm_memcached.sh start   #启动memcached 
./gm_memcached.sh stop    #停止memcached 
./gm_memcached.sh restart #重启memcached

您可能感兴趣的文章:
监控memcached进程启动与否的shell脚本
简单介绍Memcache 安装、配置、监控
memcached启动和关闭的方法
一个自动监控进程的shell脚本
配置memcached集群负载均衡
shell脚本监控php-fpm并自动重启服务
memcached常用配置参数总结
linux下监视进程挂掉后自动重启的shell脚本
如何在Linux服务器端的安装Memcache
Linux Shell判断程序是否运行的代码分享

[关闭]
~ ~