Shell脚本实现的memcached进程监控
WEB服务器使用memcached,但是不知道为什么memcached老是挂掉(基本20分钟~50分钟左右),导致部分网站页面在访问的时候出错;定义日志后,查看日志也未能发现什么;初步判定由于之前更新libevent有关系。由于线上服务器,所以先用脚本来弥补下
#!/bin/sh pid=`psaux|grep-vgrep|grepmemcached|awk'{print$2}'` memcached=`/usr/local/memcached/bin/memcached-uwww&` nginx=`/usr/local/nginx/sbin/nginx-sreload&` if[-z"$pid"] then echo$memcached echo$nginx fi
上面脚本主要温故2个知识点,一个是awk、一个是if的条件表达式;当然那些单引号、双引号、特殊单引号也是烦人的。只是一个基础脚本,很菜,不过可以实现我要的功能了,首先判断memcached进程是否存在,如果不存在则启动memcached和重载nginx。
最后加入到系统任务中,每隔5分钟判定一次:
*/15****/root/memcached.sh
完工!
关于if条件表达式,还有更多,可以到网上查找看看,这里就不重复了。