Shell脚本检查memcache进程并自动重启

修正版:

#!/bin/sh

#check memcache process and restart if down

mm_bin="/usr/local/bin/memcached"

mm_log="/home/xxx/memcached_check.log"

mm_ports=("11211" "11212")

mm_param=("-d -m 20480 -p 11211 -u www" "-d -m 256 -p 11212 -u www")

mm_count=${#mm_ports[@]}

t=$(date -d "today" +"%Y-%m-%d %H:%M:%S")

i=0

while [ $i -lt $mm_count ]

do

mm_exists=`ps -ef|grep "memcached"|grep "${mm_ports[$i]}"|grep -v grep|wc -l`

if [ "$mm_exists" == "0" ]; then

${mm_bin} ${mm_param[$i]} 2>&1 > /dev/null &

echo "${t} : ${mm_bin} ${mm_param[$i]}" >> ${mm_log}

fi

let i++

done

===============================================================

添加为自动执行:

    #crontab -e

*/10 * * * * /bin/sh /home/xxx/memcached_check.sh

系统每10分钟会自动执行memcached_check.sh

-------------------------------------------------------------

备用shell语句:

#检查mysql状态

PORT=`netstat -na | grep "LISTEN" | grep "3306" | awk ‘{print $4}‘ | awk -F. ‘{print $2}‘`

if [ "$PORT" -eq "3306" ]

#检查mysql占CPU负载

mysql_cpu=`top -U root -b -n 1 | grep mysql | awk ‘{print $10}‘|awk -F. ‘{print $1}‘`

#如果mysql cpu负载大于80,则重启mysql

if [ "$mysql_cpu" -ge "80" ]

#获得相关信息

ps -ef|grep "memcached"|grep -v "grep"|wc -l

ps -ef|grep "memcached"|grep "11211"|grep -v "grep"|wc -l

ps aux|grep "memcached"|grep -v "grep"|awk ‘{sum+=$4;n++};END{print sum}‘

ps aux|grep "memcached"|grep -v "grep"|awk ‘{printf $1}‘

MYPORT=`netstat -na|grep "tcp"|grep "3306"|awk -F[:" "]+ ‘{print $5}‘`

HAPORT=`netstat -na|grep "udp"|grep "694"|awk -F[:" "]+ ‘{print $5}‘`

PING=`ping -c 5 www.linuxtone.org|awk -F, ‘/packets/{print $3}‘|cut -c 2-|awk ‘{print $1}‘`

DB1IP=`ifconfig eth0|awk ‘/inet/{print $2}‘|cut -c 6-`

----------------------------------------------------------------------------

shell if语句的一些资料:

–b 当file存在并且是块文件时返回真

-c 当file存在并且是字符文件时返回真

-d 当pathname存在并且是一个目录时返回真

-e 当pathname指定的文件或目录存在时返回真

-f 当file存在并且是正规文件时返回真

-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真

-h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效

-k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真

-p 当file存在并且是命令管道时返回为真

-r 当由pathname指定的文件或目录存在并且可读时返回为真

-s 当file存在文件大小大于0时返回真

-u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真

-w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。

-o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。

UNIX Shell 里面比较字符写法:

-eq 等于

-ne 不等于

-gt 大于

-lt 小于

-le 小于等于

-ge 大于等于

-z 空串

= 两个字符相等

!= 两个字符不等

-n 非空串

------------------------------------------------------------

crontab 的一些资料:

基本格式:

*  *  *  *  *  command

分  时 日  月  周  命令

第1列表示分钟1~59 每分钟用 * 或 */1 表示,*/10表示每10分钟

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 07:18:41

Shell脚本检查memcache进程并自动重启的相关文章

【如何使用shell 脚本调用java进程】

如何使用shell脚本调用java进程,直接看脚本: 源码地址:获取源码 更多java,java学习,java面试题 http://techfoxbbs.com

shell 脚本实战笔记(9)--linux自动批量添加用户

前言: 添加linux用户帐号,这个相对简单, 在面对集群, 许多机器的时候, 我们该如何去做和实现? 这篇短文, 简单讲解一些思路, 尽可能地涉及周边的一些知识点. 不光是运维人员会面临这个问题, 对一个基于linux平台的集群服务或软件(比如hadoop集群), 有时也会涉及到这块. 应用场景: 是以centos 6.4作为演示的系统, 其他的系统有类同, 也有差异, 且以实战演练, 一步步的讲述下流程. *) 实战演练 查阅useradd的使用和参数选项useradd --help -d,

linux kafka进程挂了 自动重启

使用crontab,定时监控 kafka进程,发现挂了后重启. shell脚本如下: #!/bin/sh source /etc/profile proc_dir="/data/kafka" # 程序目录 proc_name="kafka.Kafka" # 进程名 file_name="cron.log" # 日志文件 pid=0 proc_num() # 计算进程数 { num=`ps -ef | grep $proc_name | grep

shell脚本--监控java进程存活脚本

#!/bin/bash base_dir=/opt war_processor="tomcat" jar_processor="manager-server.jar platform-server.jar platform-item.jar platform-shop.jar platform-task.jar platform-trade.jar platform-user.jar" IP_ADDR=`ifconfig |grep inet|awk -F &quo

shell脚本检查网站状态

检查网站状态通常使用wget或curl工具,下面分别使用这二种工具来做写检查网站的脚本.(学习自老男孩shell编程) 命令行: 1.curl得到返回值200,表示正常 [[email protected] ~]# curl -o /dev/null -s --connect-timeout 5 -w '%{http_code}' www.baidu.com 200[[email protected] ~] 2.wget得到0,表示正常 [[email protected] ~]# wget -

开发shell脚本检查Nginx实战分享

一.本脚本实现功能: 1.自动检查Nginx下面的代理节点是否正常 2.通过页面显示状态,有问题的节点给出页面报警及声音报警. 3.增加新节点,页面自动载入新节点,无需修改程序. 二.守护检查脚本 [[email protected] extra]# cd /server/scripts/ [[email protected] scripts]# vi nginx_check.sh #!/bin/bash # oldboy training 21 zhangyao # Defined varia

Tomcat Shell脚本(启动|关闭|重启|状态)

#!/bin/bash # # chkconfig: - 95 15 # description: Tomcat start/stop/status script #Location of JAVA_HOME (bin files) export JAVA_HOME=/usr/java/jdk1.7.0_80 #Add Java binary files to PATH export PATH=$JAVA_HOME/bin:$PATH #CATALINA_HOME is the location

shell脚本检查Tomcat运行状态

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin export JAVA_HOME=/usr/java   export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar   export PATH=$PATH:$JAVA_HOME/bin:/usr/local/pcre/bin:/us

检查安装IBM Installition Manager依赖包的shell脚本

问题:Redhat 6.3虚拟机执行IBM Installition Manager安装时直接返回,提示有一份新邮件,内容为不支持虚拟机硬件 解决:IBM Installition Manager依赖的包不完整,使用shell脚本检查并安装缺少的包 #!/bin/sh # 检查安装IBM Installition Manager依赖的16个安装包,版本未要求完全一致或更新 packages="compat-db compat-libstdc++-33 elfutils elfutils-libs