返回顶部
首页 > 资讯 > 数据库 >实战模拟监控MySQL服务shell脚本小结
  • 894
分享到

实战模拟监控MySQL服务shell脚本小结

小结脚本实战 2022-06-04 21:06:53 894人浏览 泡泡鱼
摘要

1)端口判断法==>仅适合数据库本地使用 法1:if条件判断方法 [root@oldboy scripts]# cat check_db01.sh #!/bin/sh #created by ol

1)端口判断法==>仅适合数据库本地使用

法1:if条件判断方法


[root@oldboy scripts]# cat check_db01.sh
#!/bin/sh
#created by oldboy
#mail:oldboy521@gmail.com
PortNum=`netstat -lnt|grep 3306|wc -l`
if [ $PortNum -eq 1 ]
then
 echo "Mysqld is running."
else
 echo "mysqld is stoped."
fi

法2:条件表达式用法


[root@oldboy scripts]# cat check_db01_1.sh
#!/bin/sh
#created by oldboy
#mail:oldboy521@gmail.com
 
PortNum=`netstat -lnt|grep 3306|wc -l`
#PortNum=`nmap 10.0.0.189 -p 3306|grep open|wc -l`
[ $PortNum -eq 1 ] && echo "mysqld is running."||echo "mysqld is stoped."

法3:使用系统函数显示法


[root@oldboy scripts]# cat check_db01_2.sh
#!/bin/sh
#created by oldboy
#mail:oldboy521@gmail.com
#load functions
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
PortNum=`netstat -lnt|grep 3306|wc -l`
if [ $PortNum -eq 1 ]
then
 action "mysqld is running." /bin/true
else
 action "mysqld is stoped." /bin/false
fi

2)进程加端口判断法==>仅适合数据库本地使用


[root@oldboy scripts]# cat check_db02.sh
#!/bin/sh
#created by oldboy
#mail:oldboy521@gmail.com
 
PortNum=`netstat -lnt|grep 3306|wc -l`
ProcessNum=`ps -ef|grep mysql|grep -v grep| wc -l`
#echo $PortNum $ProcessNum
#exit 1
 
if [ $PortNum -eq 1 -a $ProcessNum -eq 2 ]
then
 echo "mysqld is running."
else
 echo "mysqld is stoped."
fi

提示:如果不放心还可以同时加上模拟用户访问。

技巧:脚本调试技巧

1)grep过滤的字符串,不要包含在文件名里,例:grep mysql ,文件名为check_mysql.sh 就不太好。比较好的文件名如:
-rw-r--r-- 1 root root 236 Sep 9 22:19 check_db01.sh
-rw-r--r-- 1 root root 293 Sep 9 22:34 check_db02.sh
-rw-r--r-- 1 root root 212 Sep 9 22:49 check_db03.sh
2)当语法没有问题但是结果不正确,可以使用下面的方法排查:
a)在变量定义的后面打印变量结果,看和实际结果是否一致,如:
echo $PortNum $ProcessNum
exit 1
b) sh -x check_db02.sh的方式,跟踪脚本执行过程,更多的调试方案见后面的shell脚本调试精讲。
3)判断远端mysql服务是否正常的方法

法1:端口检查法==>适合在远端服务器使用(本地也适合)


[root@oldboy scripts]# cat check_db03.sh
#!/bin/sh
#created by oldboy
#mail:oldboy521@gmail.com
PortNum=`nmap 10.0.0.189 -p 80|grep open|wc -l`
if [ $PortNum -eq 1 ]
then
 echo "mysqld is running."
else
 echo "mysqld is stoped."
fi

提示:端口的使用方法还有很多种,包括不限于下面地址的3种方法,Http://oldboy.blog.51cto.com/2561410/942530
例如:还可以用nagiOS的check_tcp插件等法。
法2:模拟用户(包括WEB server)访问方法==>适合在远端服务器使用(本地也适合)


[root@oldboy scripts]# cat check_db04.sh
#!/bin/sh
#created by oldboy
#mail:oldboy521@gmail.com
 
mysql -S /data/3306/mysql.sock -e "select version();" >/dev/null 2>&1
if [ $? -eq 0 ]
then
 echo "mysqld is running."
else
 echo "mysqld is stoped."
fi

技巧:
1)使用web 连接账号模拟访问。
法3:模拟用户使用程序URL的方式判断


<?PHP

  $link_id=mysql_connect('10.0.0.4','oldboy','oldboy123') or mysql_error();
  if($link_id){
   echo "mysql successful by oldboy !";
  }else{
   echo mysql_error();
  }
?>

以上的方法仅仅是简单的判断,那么下面给出一个集判断,处理,及报警于一身的较专业的mysql检查处理脚本。
4)较专业mysql检查处理脚本的解决方案


#!/bin/bash 
#created by oldboy QQ 49000448 
#date:20100918 
MYUSER=root 
MYPASS="oldboy" 
MYSOCK=/data/3306/mysql.sock 
MySQL_STARTUP="/data/3306/mysql" 
LOG_PATH=/tmp 
LOG_FILE=${LOG_PATH}/mysqllogs_`date +%F`.log 
MYSQL_PATH=/usr/local/mysql/bin 
MYSQL_CMD="$MYSQL_PATH/mysql -u$MYUSER -p$MYPASS -S $MYSOCK" 
#→全变量定义方式,显得更专业。 
$MYSQL_CMD -e "select version();" >/dev/null 2>&1 
if [ $? -eq 0 ] 
then 
echo "MySQL is running! " 
exit 0 
else 
$MySQL_STARTUP start >$LOG_FILE#→日志也是变量。 
sleep 5; 
$MYSQL_CMD -e "select version();" >/dev/null 2>&1 
if [ $? -ne 0 ] 
then 
for num in `seq 10`#→通过for循环来杀死mysqld,真正杀死则退出循环或每隔个两秒杀一次,一共杀10次。 
do 
killall mysqld>/dev/null 2>&1 
[ $? -ne 0 ] && break; 
sleep 2 
done 
$MySQL_STARTUP start >>$LOG_FILE 
fi 
$MYSQL_CMD -e "select version();" >/dev/null 2>&1 && Status="restarted" || Status="unknown"#→这个逻辑更准确。 
echo "MySQL status is $Status" >>$LOG_FILE 
mail -s "MySQL status is $Status" 31333741@qq.com < $LOG_FILE 
#→把上面的Status作为结果标题传给邮件,当然你可以做短信,语音通话报警。 
fi 
exit 
您可能感兴趣的文档:

--结束END--

本文标题: 实战模拟监控MySQL服务shell脚本小结

本文链接: https://lsjlt.com/news/19151.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 实战模拟监控MySQL服务shell脚本小结
    1)端口判断法==>仅适合数据库本地使用 法1:if条件判断方法 [root@oldboy scripts]# cat check_db01.sh #!/bin/sh #created by ol...
    99+
    2022-06-04
    小结 脚本 实战
  • 如何实现监控MySQL服务shell脚本
    这篇文章给大家分享的是有关如何实现监控MySQL服务shell脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1)端口判断法==>仅适合数据库本地使用法1:if条件判断方法[root@oldboy&nbs...
    99+
    2023-06-09
  • shell监控脚本实例—监控mysql主从复制
    本节内容:监控mysql主从复制的shell脚本。 说明:监控脚本在 rhel5 下测试正常,其它版本的linux 系统请自行测试,需要的一些准备工作可以查看这篇文章 代码: #监控mysql 主从复制c...
    99+
    2022-06-04
    主从 脚本 实例
  • 用shell+sendmail实现服务器监控报警小脚本
    这种email报警脚本遍地都是,很多用的sendmail、postfix,感觉有些大材小用了;也有些用perl的NET::SMTP和Authen::SASL模块发信的,不过我perl用的不好,老发出些莫名其...
    99+
    2022-06-04
    脚本 服务器 shell
  • Shell脚本实现监控MySQL主从同步
    代码如下: #!/bin/bash #check MySQL_Slave Status #crontab time 00:10 MYSQLPORT=`netstat -na|grep "LISTEN...
    99+
    2022-06-04
    主从 脚本 Shell
  • shell脚本实现服务器进程监控的方法
    写作背景:   项目是基于java、weblogic及timer的处理模式,每次服务部署之后timer的整体状态是一个盲区,因为100多个进程,是否有启动遗漏或者启动重复的,想做到一目了然是件困难的事情。所以我考...
    99+
    2022-06-04
    shell 监控进程 shell 监控进程脚本
  • 怎么用Shell脚本实现监控MySQL主从同步
    这篇文章主要介绍“怎么用Shell脚本实现监控MySQL主从同步”,在日常操作中,相信很多人在怎么用Shell脚本实现监控MySQL主从同步问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Shell脚本实...
    99+
    2023-06-09
  • 使用shell脚本怎么实现服务器进程监控
    使用shell脚本怎么实现服务器进程监控?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。程序说明:1)通过将系统定义的进程(timer)配置到配置文件proces...
    99+
    2023-06-09
  • 监控服务器swap并重启php的Shell脚本
    折中一下,写个脚本监控swap吧,放在crontab里面,2小时执行一次,世界安静了,再也没有烦人的报警短信了 #!/bin/bash function usage { echo "Usa...
    99+
    2022-06-04
    重启 脚本 服务器
  • 监控php-fpm并自动重启服务的shell脚本
    脚本代码: #!/bin/bash#变量初始化process="php-fpm" #进程名startCmd="/etc/init.d/php-fpm start" #启动命令down=0while true...
    99+
    2022-06-04
    脚本 自动重启 php
  • shell脚本怎么实现监控php-fpm并自动重启服务
    这篇文章主要讲解了“shell脚本怎么实现监控php-fpm并自动重启服务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell脚本怎么实现监控php-fpm并自动重启服务”吧!脚本代码:...
    99+
    2023-06-09
  • shell脚本怎样实现定时监控http服务的运行状态
    这篇文章主要为大家展示了“shell脚本怎样实现定时监控http服务的运行状态”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“shell脚本怎样实现定时监控http服务的运行状态”这篇文章吧。注意...
    99+
    2023-06-05
  • 如何监控服务器swap然后重启php的Shell脚本
    本篇内容主要讲解“如何监控服务器swap然后重启php的Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何监控服务器swap然后重启php的Shell脚本”吧!代码如下:#!/bi...
    99+
    2023-06-09
  • shell脚本实现Hbase服务的监控报警和自动拉起问题
    目录需求说明1. 通过服务名监控2. 通过端口监控3. 企业微信消息通知脚本4.定时调度5. 报警信息需求说明 期初是我们的物理机上安装了Hbase,由于物理机硬件配置还可以,1T内存,64核。只有4台机器,我们装完Hb...
    99+
    2024-04-02
  • PHP Linux脚本操作实例:实现Web服务监控
    在Web应用程序的开发过程中,及时了解服务器的状态对于保证应用程序的正常运行至关重要。为了实现对Web服务的监控,我们可以使用PHP脚本来实现自动化的监控任务。本文将介绍如何利用PHP和Linux脚本实现对Web服务的监控,并给出具体的代码...
    99+
    2023-10-21
    Linux PHP 脚本操作
  • 如何使用Redis和Shell脚本开发实时任务监控功能
    如何使用Redis和Shell脚本开发实时任务监控功能引言:随着互联网的发展,实时任务监控成为了许多系统开发者和运维人员的必备技能。而Redis和Shell脚本作为常用的实时任务监控工具,可以帮助我们方便地管理和监控系统中的任务。本文将介绍...
    99+
    2023-10-22
    redis Shell脚本 实时任务监控
  • 如何实现用Shell脚本监控服务器在线状态和邮件报警
    本篇内容主要讲解“如何实现用Shell脚本监控服务器在线状态和邮件报警”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现用Shell脚本监控服务器在线状态和邮件报警”吧!对于服务器来说在线率...
    99+
    2023-06-09
  • Shell脚本监控服务器在线状态和邮件报警的方法
    对于服务器来说在线率很重要,出现问题要能及时解决,但系统管理员不能一直守在电脑旁边,通过脚本监控网站出现问题及时通过mail通知管理员,如果是139邮箱还可免费手机短信通知。注:通过系统直接发送mail容易...
    99+
    2022-06-04
    在线 脚本 状态
  • linux中如何实现bash脚本监控启动停止weblogic服务
    这篇文章给大家分享的是有关linux中如何实现bash脚本监控启动停止weblogic服务的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。有时,linux系统需要做HA或者类似的功能,需要配置weblogic脚本来...
    99+
    2023-06-09
  • 如恶化实现智能监测自动重启Apache服务器的Shell脚本
    这篇文章主要介绍“如恶化实现智能监测自动重启Apache服务器的Shell脚本”,在日常操作中,相信很多人在如恶化实现智能监测自动重启Apache服务器的Shell脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作