shell---服务监控

shell—服务监控


监测mysql数据库异常

1.端口监控

- 服务器本地监控端口

在服务器本地监控端口的命令有:netstat ss lsof
netstat:

netstat -antlpe | grep mysql
netstat -antlpe | grep 3306 | awk -F "[ :]+" '{print $5}'

对端口进程进行判断时,尽量先通过grep过滤端口和进程标记特殊字符串,然后结合wc -l(统计输出的行数)将结果转换成行数再进行比较,相对简单有效。而且会经过wc -l命令处理之后的结果一定是数字,这样再进行判断比较简单

netstat -antlpe | grep mysql |wc -l

在这里插入图片描述
ss:类似于netstat,参数选项可通用

ss -antlpe | grep mysql | wc -l

在这里插入图片描述
lsof:

yum install lsof -y
lsof -i tcp:3306 |wc -l

在这里插入图片描述

- 在远程服务器监控本地端口

在远程服务器监控本地端口的命令:nmap telnet nc
在远程主机:

nmap:

yum install telnet nmap nc -y
nmap 172.25.254.236 -p 3306
nmap 172.25.254.236 -p 3306 | grep open
nmap 172.25.254.236 -p 3306 | grep open | wc -l

查看远程端口是否开通,过滤open关键字,结果返回1,说明3306端口是通的
在这里插入图片描述
telnet:

telnet 172.25.254.236 3306
telnet 172.25.254.236 3306 | grep Connected
telnet 172.25.254.236 3306 | grep Connected | wc -l

telnet是常用来监测远程服务器端口是否通畅的一个命令,在非交互式需要采用特殊写法。过滤的关键字为Connected,返回1,说明3306端口是通的
在这里插入图片描述

2.对服务进程或进程数进行监控

对服务进程或进程数进行监控(适合本地服务器)

ps -ef | grep mysql |wc -l	#此处把过滤的动作也当作了一个进程
ps -ef | grep mysql |grep -v grep	
ps -ef | grep mysql |grep -v grep | wc -l

在这里插入图片描述

3.开发监控mysql数据库的脚本

脚本1:

#!/bin/bash
if [ "`netstat -antlpe | grep 3306 | awk -F '[ :]+' '{print $5}'`" = "3306" ]
then
	echo "mysql is running"
else
	echo "mysql is stop,now start it"
	systemctl start mariadb
fi

脚本2:

#!/bin/bash
if [ `netstat -antlpe | grep 3306 | wc -l` -eq 1 ]
then
	echo "mysql is running"
else
	echo "mysql is stop,now start it"
	systemctl start mariadb
fi

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值