定时检测Memcached进程是否存在,若不存在自动启动它

由于一台WEB服务器的Memcached死掉而导致在访问网站的某些页面时候打不开。下面脚本会自动检测Memcached的进程,如果挂掉则自动重启Memcached服务。

vim memcached_check.sh

#!/bin/sh
#check memcached process and restart if down
PATH=$PATH:/opt/env/memcache/bin/memcached
DATE=`date -d "today" +"%Y-%m-%d-%H:%M"`
#用ps命令查看memcached进程
MM=`ps -aux |grep "memcached" |grep "11211" |grep -v "grep" |wc -l`
#if语句判断进程是否存在,如果不存在,输出日志记录并重启memcached服务
if [ "$MM" == "0" ]; then
    echo "$DATE The memcached is problem and restart" >> /root/sh/memcached_check.logs
/opt/env/memcache/bin/memcached -t 8 -d -m 2048 -p 11211 -u nobody
    else
#echo "$DATE The memcached is ok" >>/root/sh/memcached_check.logs
fi

添加crontab计划任务,每5分钟检测一次。

*/5 * * * * /bin/bash    /root/sh/memcached_check.sh
时间: 2024-10-14 12:44:04

定时检测Memcached进程是否存在,若不存在自动启动它的相关文章

CentOS7 定时检测进程占用内存大小,执行重启进程操作(xjl456852原创)

在使用CentOS时,个别程序的进程会一直增大,直到宕机.但是这种程序本身有没有更好的版本使用(比如ngrok免费就这样,付费的就没这个问题),所以想写一个脚本定时检测一下这个程序的情况,决定是否需要重启,该重启时重启,没有启动则让他启动. 注:脚本名中最好不要包含ngrokd, 因为脚本执行时自己也会成为一个进程,获取原始ngrokd的进程大小就不能简写为grep "ngrokd"  ,而应改为全路径:grep "/usr/local/ngrok/bin/ngrokd&qu

java 定时检测服务器端口状态方法(一)

最近在写运维管理平台的定时检测集群中各台服务器端口开放状态来判断进程状态的定时任务.顺便整理了下java如何检测服务器一个或者多个端口,以及如何加到定时任务中. 一.java中用Socket检测服务器一个端口开放状态.(对socket不太了解,只是最近用才简单看了下) Socket的英文原义是"孔"或"插座".作为BSD UNIX的进程通信机制,取后一种意思.通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.在Internet上的

(转)增加定时检测linux占用内存,及时清理功能

增加定时检测linux占用内存,及时清理功能 原文:http://www.voidcn.com/article/p-wnmannom-boa.html free -m 查看,发现内存跑满了. 再 top,然后按下shift+m,也就是按内存占用百分比排序,发现排在第一的进程,才占用7.9%. 但是总内存大小8G,竟然有5G都被使用了, 那是什么占用的呢? 百度了一下,据说是centos为了提高效率,把部分使用过的文件缓存到了内存里. 如果是这样的话,我又不需要这样的文件性能,那就可以释放.如下两

系统状态检测 及进程控制

查看linux 服务器CPU 两大指导原则 #具有相同的core id的CPU是同一个core的超线程# #具有相同physical id的CPU是同一个CPU封装的线程或核心# cat /proc/cpuinfo | grep 'siblings'  查看是否为超线程 [[email protected] ~]# arch #这台是我的R51旧笔记本# i686 [[email protected] ~]# cat /proc/cpuinfo  #这台是我的R51旧笔记本# processor

遍历PspCidTable表检测隐藏进程

一.PspCidTable概述 PspCidTable也是一个句柄表,其格式与普通的句柄表是完全一样的,但它与每个进程私有的句柄表有以下不同: 1.PspCidTable中存放的对象是系统中所有的进程线程对象,其索引就是PID和TID. 2.PspCidTable中存放的直接是对象体(EPROCESS和ETHREAD),而每个进程私有的句柄表则存放的是对象头(OBJECT_HEADER). 3.PspCidTable是一个独立的句柄表,而每个进程私有的句柄表以一个双链连接起来.注意访问对象时要掩

python检测linux进程是否运行

python检测linux下运行的进程 # -*- coding:utf8 -*- import subprocess import sys status_ok = 0 status_critical = 2 def c(d_name):     cmd = 'ps -ef|grep %s|grep -v "grep"' % d_name     p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)     if p

CentOS下自动发邮件检测某进程是否存在

目的:利用shell脚本每小时检测数据库是否在运行,当检测到库宕掉时发邮件告警. 1.检查sendmail是否在运行 service sendmail status 没有在运行则启动或安装. 如果是linux 6,则检查postfix是否在运行 service postfix status 2.pmon是oracle五大关键进程之一,如果pmon进程不存在则库一定是关闭了,下面就用脚本检测pmon是否存在. 脚本/root/check.sh如下: #!/bin/bash source .bash

crond守护进程实现定时监控某进程占有内存的大小

1)添加计划任务 crontab -e会使用某个编辑器打开某个文件,然后在内输入需要执行的计划任务,保存后在/var/spool/cron/crontabs/下会出现以用户名命名的文件 2)计划任务如何添加 该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令.    每个域之间使用空格或者制表符分隔.格式如下:  minute hour day-of-month month-of-year day-of-week commands 除了数字还有几个个特殊的符

嵌入式linux下自动定时检测硬盘空间并删除旧文件脚本

#! /bin/sh while true; do i=`df -h | egrep '/mnt/yourpath'| awk '{print $5}' | cut -d "%" -f1 -` if [ "$i" -ge 90 ] then echo "disk nearly full" cd /mnt/yourpath for file1day in `ls -d */ | sort -n | cut -d "/" -f1