Shell脚本 - 用来检查memcache并自动重启生效脚本
#!/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,则重启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表示星期天)
Shell脚本 - 用来检查memcache并自动重启生效脚本的更多相关文章
- supervisor开机自动启动脚本+redis+MySQL+tomcat+nginx进程自动重启配置
[root@mongodb-host supervisord]# cat mongo.conf [program:mongo]command=/usr/local/mongodb/bin/mongod ...
- 零零碎碎写的shell脚本(三):一键自动归档压缩脚本
#!/bin/bash # author by sysk read -p "There files: " FILE1 FILE2 FILE3 read -p "Desti ...
- linux下通过脚本实现自动重启程序的方法
无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美 ...
- 在windows 上自动重启 tomcat 的方法
在windows 上自动重启 tomcat 的方法 实现思路: Windows 上监控tomcat 进程并且自动重启的脚本 一类是 定时重启 tomcat 一类是 监控并重启 写一个守护tomcat进 ...
- linux下监视进程 崩溃挂掉后自动重启的shell脚本
如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务程序时经常会碰到这样的问题.在Linux系统中,强大的shell就可以很灵活的处理这样的事务. 下面的shell通过一个while-d ...
- Shell学习---Shell脚本的静态检查工具shellcheck
Shell脚本的静态检查工具shellcheck ubuntu下 apt install shellcheck ,即可安装shellcheck.写完shell脚本,记得用它检查一下,能给你点建议的.要 ...
- 【运维技术】shell脚本实现线程挂掉,自动重启功能
由于分布式系统的流行,服务器上面部署的项目都是多实例的.而我又希望有一个功能,当服务器出现异常情况能够自动重启实例. 所以我想到了使用shell脚本监控实例进程id,如果不存在的话,就重启对应的实例. ...
- tomcat监控,自动重启shell脚本
tomcat监控,自动重启shell脚本如下,取名 monitor_tomcat.sh: #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作 # 获取tomcat进程ID(其中 ...
- Shell脚本自动重启Java服务
话不多说直接上代码: cd /home/javaProduct/if [ -d '/home/javaProduct/lib_new/' ]; thenecho 'Has New Lib!'echo ...
随机推荐
- ADT-23.0.2百度网盘下载地址
最近 Google 被墙 http://download.csdn.net/download/wentai2009/7736389
- IOS 完成来电归属地
首先是一个库:(有时间在上传) 然后设置一个工具类 .h @interface HMFoundLocation : NSObject AS_SINGLETON(HMFoundLocation) @pr ...
- 微信小程序自学第四课:数据绑定
WXML 中的动态数据均来自对应 Page 的 data. 一.简单绑定 数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于: 1.内容 <view> {{ mess ...
- Python实现返回指定范围内的所有素数
# 获取a, b范围的所有素数 def func(a, b): li = [] for i in range(a, b+1): for j in range(2, i): if i % j == 0: ...
- Docker 容器的数据卷
数据卷的特点: 1. 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中 2. 数据卷可以在容器之间共享和重用 3. 可以对数据卷里的内容直接进行修改 ...
- 【NOIP模拟赛】收银员(一道差分约束好题)
/* s[]表示最优方案的序列中的前缀和,那么s[23]就是最优方案 由题意我们可以列出这样一些式子: s[i]+s[23]-s[16+i]>=a[i] (i-8<0) s[i]-s[i- ...
- 异常HttpMessageNotWritableException解决办法
1. 问题描述 在写SpringBoot项目的时候,由于是前后端分离项目,为了统一接口形式,使用一个类封装了返回数据的形式,但是在测试的时候报异常HttpMessageNotWritableExcep ...
- 小K的农场 差分约束
题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b至少多种植了c个单位的作 ...
- POJ1044 Date bugs
题目来源:http://poj.org/problem?id=1044 题目大意: 与众所周知的”千年虫“类似,某些计算机上存在日期记录的bug.它们的时钟有一个年份周期,每当到达最大值时,就会自动跳 ...
- Linux下iptables总结
linux下防火墙iptables 工作于网络或主机边缘,对进出本网络或本主机的网络报文安装事先设定好的匹配规则进行检查,对能够被规则所匹配的报文按照规则定义的处理机制进行处理的组件 通常情况下ipt ...