首页 > 开发 > Php > 正文

PHP+shell脚本操作Memcached和Apache Status的实例分享

2020-02-21 20:46:37
字体:
来源:转载
供稿:网友

memcached 进程启动及监控
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  #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  #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 


shell 记录apache status并自动更新到数据库

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表