免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1122 | 回复: 6

[系统管理] 使用脚本监测mysql服务,如果mysql停掉会自动将服务启动 [复制链接]

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
发表于 2016-10-11 14:11 |显示全部楼层
对于监控mysql服务的脚本,我是引入了数组的方式来处理,脚本的内容如下:

#/bin/bash
port=(`netstat -tulnp|grep -i listen|awk {'print $4'}|awk -F: {'print $4'}`)  
length=${#port[@]}
for((i=0; i<$length;i++))
do
if [ ${port[i]} -eq 3306 ]
then
quit
else
service mysql start
fi
done


我如果单一执行
[root@wangyu-rh-6 ~]# netstat -tulnp|grep -i listen|awk {'print $4'}|awk -F: {'print $4'}
111
22
631
45285


由于mysql对应的是3306端口,而我想达到的目的是当使用if [ ${port[i]} -eq 3306 ]语句依次比对port数组后,目前数组的内容为111,22,631,45285,数组中的4个数字都不为3306时再启动mysql服务,但是目前按照我的脚本是每比对数组中的一个值,如果不等于3306,就会启动一次mysql,请问我应该如何来修改脚本使得数组中的每个值都比对完成后发现所有值都不等于3306,再来启动mysql服务?

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2016-10-11 14:33 |显示全部楼层
  1. [[ -z `netstat -tulnp|grep ':3306'` ]] && service mysqld start
复制代码

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
发表于 2016-10-11 16:01 |显示全部楼层
回复 2# moperyblue

非常感谢,脚本可以使用。

论坛徽章:
0
发表于 2016-10-11 16:03 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2016-10-11 17:01 |显示全部楼层
回复 3# 274920831


netstat -tulnp|grep -i listen|awk {'print $4'}|awk -F: {'print $4'}  #这种写法也有问题吧  即有3306的端口也打印不出来
  1. netstat -tulnp|grep -i listen|awk '{!a[b[split($4,b,":")]]++}END{for(i in a)print i}'
  2. #或
  3. netstat -tulnp|grep -ioP '^(\S+\s+){3}\S+:\K\d+(?=.*listen)'|sort -u
复制代码

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
发表于 2016-10-11 17:20 |显示全部楼层
  1. ss -ln |grep -q ":3306\b"  ||  service mysql start
复制代码

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
发表于 2016-10-12 09:41 |显示全部楼层
回复 4# 本友会机友会摄友会

这种思想确实是正确的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP