Linux系统Shell编程—企业生产案例(一)

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

转载声明:转载请注明出处,本技术博客是本人原创文章

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Linux系统Shell编程—企业生产案例(一)

Linux系统Shell编程—企业生产案例(一)

企业案例

Linux系统Shell编程—企业生产案例(一)

企业数据库可以说是重点保护对象啊,没有之一,数据在当今企业里就是生命线,因此今天就来说一说,如何通过shell脚本来检查或监控MYSQL数据库服务是否正常??

通过端口判断

[root@mysql ~]# vi checkmysql.sh

#!/bin/sh

#create by mingongge at 2016-11-11

port= netstat -lnt|grep 3306|wc -l

if [ $port -ne 1 ];then

   echo “mysql is stop”

   /etc/init.d/mysqld start

else

   echo “mysql is starting”

fi

[root@mysql ~]# sh checkmysql.sh

mysql is starting

[root@mysql ~]# pkill mysqld

[root@mysql ~]# lsof -i :3306

[root@mysql ~]# sh checkmysql.sh

mysql is stop

Starting MySQL.                                 [  OK  ]

[root@mysql ~]# lsof -i :3306  

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

mysqld  1601 mysql   10u  IPv4  13690      0t0  TCP *:mysql (LISTEN)

通过进程与端口判断

[root@mysql ~]# ps -ef|grep mysql|grep -v grep|wc -l

2

[root@mysql ~]# vi checkmysql.sh

#!/bin/sh

#create by mingongge at 2016-11-11

if [[ $port -eq 1 || $porcess -eq 2 ]];then

     echo “mysql is starting”

else

     echo “mysql is stop”

     /etc/init.d/mysqld start

注:利用进程判断时,脚本的名称就不要包含有Mysql的字样了,否则就会产生判断不准确的情况出现

登陆数据库根据返回值判断

[root@mysql ~]# vi accessmysql.sh

#/bin/sh

mysql -uroot -pmysql123 -e “show databases;” /dev/null 2&1

注:此处千万不要用直接登陆的写法mysql -uroot -pmysql123,否则会直接登陆了,不然执行下面的过程了

if [ $? -eq 0 ];then

     echo “mysql is starting”

else

     echo “mysql is stop”

     /etc/init.d/mysqld start

fi

[root@mysql ~]# sh accessmysql.sh

mysql is starting

[root@mysql ~]# pkill mysqld

[root@mysql ~]# sh accessmysql.sh

mysql is stop

Starting MySQL.                    [  OK  ]

[root@mysql ~]# sh accessmysql.sh

mysql is starting

监控MYSQL数据库是否异常的多种方法:

1、根据端口监控本地数据库

2、根据进程进行监控本地数据库

3、通过客户端命令及账号连接MYSQL,然后根据返回内容进行判断是否正常

4、通过PHP、JAVA程序URL方式进行监控(此种方式最佳,生产环境常用)

5、也可以通过以上方法综合利用

Linux系统Shell编程—企业生产案例(一) Linux系统Shell编程—企业生产案例(一)
本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

转载声明:转载请注明出处,本技术博客是本人原创文章

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Linux系统Shell编程—企业生产案例(一)


 上一篇
linux系统运维企业常见面试题集合(二) linux系统运维企业常见面试题集合(二)
linux系统运维企业常见面试题集合(二) 本文所有内容均来自于个人整理而成,其中解答均属个人观点,如有不正之处,烦请给予指正,谢谢!!! /var/log/messages日志出现kernel:nf_conntrack:tablefull
2021-04-05
下一篇 
linux系统运维企业常见面试题集合(三) linux系统运维企业常见面试题集合(三)
     linux系统运维企业常见面试题集合(三) 写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行;(2) 一行中,如果包含”11111”,则在”11111”前面插入”AAA”,在”11111
2021-04-05