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

本文发布时间: 2019-Mar-22
修正版:#!/bin/sh#check memcache process and restart if downmm_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=0while [ $i -lt $mm_count ]domm_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}filet 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,则重启mysqlif [ "$mysql_cpu" -ge "80" ]#获得相关信息ps -ef|grep "memcached"|grep -v "grep"|wc -lps -ef|grep "memcached"|grep "11211"|grep -v "grep"|wc -lps 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-Mar-04 02:09pm
栏目列表