5ol.cc 发表于 2018-10-4 10:59:49

监控 MySQL的多种方法

  判断mysql是否正常的几种方法
  #################################
  方法1:看端口
  netstat -lntup|grep 3306|wc -l
  lsof -i :3306 |wc -l
  远程:
  /telnet/nc/nmap
  #################################
  方法2:看进程
  ps -ef |grep mysqld|wc -l
  #################################
  方法3:进入mysql 看版本
  # mysql -uroot -e "select version();"
  +-----------+
  | version() |
  +-----------+
  | 5.1.72    |
  +-----------+
  # echo $?
  0
  #
  mysql -uroot -e "select version();" &>1 >> /dev/null ; echo $?
  #################################
  方法4:让开发写java或者php等程序监控
  #################################
  方法5:使用上面4中监控方法的组合
  ######################################
  ######################################
  脚本1
  # cat mysqlif.sh
  #!/bin/sh
  port=`netstat -lnt|grep 3306|wc -l`
  if [ $port -ne 1 ]
  then
  echo "MySQL isn't running."
  /etc/init.d/mysqld start
  echo "MySQL is running."
  else
  echo "MySQL is running."
  fi
  #
  ######################################
  ######################################
  脚本2
  # cat mysqlif.sh
  #!/bin/sh
  #port=`netstat -lnt|grep 3306|wc -l`
  proc=`ps -ef |grep mysqld|grep -v grep |wc -l`
  if [ $proc -lt 1 ]
  then
  echo "MySQL isn't running."
  /etc/init.d/mysqld start
  echo "MySQL is running."
  else
  echo "MySQL is running."
  fi
  #
  ######################################
  ######################################
  脚本3推荐方法
  # cat mysqlif.sh
  #!/bin/sh
  #port=`netstat -lnt|grep 3306|wc -l`
  #proc=`ps -ef |grep mysqld|grep -v grep |wc -l`
  mysql -uroot -e "select version();" &>1 >> /dev/null
  #mysql -uroot -ppassword -e "select version();" &>1 >> /dev/null
  num=`echo $?`
  if [ $num -ne 0 ]
  then
  echo "MySQL isn't running."
  /etc/init.d/mysqld start
  echo "MySQL is running."
  else
  echo "MySQL is running."
  fi
  #
  ######################################
  ######################################
  脚本4
  # cat mysqlif.sh
  #!/bin/sh
  pidfile=/application/mysql5.1.72/data/LAMP.pid
  mysql_path=/application/mysql5.1.72/bin
  datadir=/application/mysql5.1.72/data
  if [ ! -f $pidfile ]
  then
  $mysql_path/mysqld_safe --datadir=$datadir --pid-file=$pidfile & 2>&1 /dev/null
  else
  echo "MySQL is running."
  fi
  #
  #################### ###############
  监控web服务的手段
  1.本地:ss、netstat、lsof
  远程:telnet、nmap、nc
  nmap 10.0.0.3 -p 80 |grep open |wc -l
  2.本地进程数
  ps -ef |grep httpd|grep -v grep
  3.curl -s -I 看返回值是否为200
  wget
  curl -I -s www.baidu.com|awk -F' ' 'NR==1{print $2}'
  curl -I -s -w "%{http_code}%" -o /dev/nullwww.baidu.com
  wget --spider --timeout=10 --tries=5 10.0.0.3 &>/dev/null ;echo $?
  4、写php、java监控程序,模拟用户访问,访问固定的测试页面
  #################################################
  附带
  # cat webjk.sh
  #!/bin/sh
  #status=`curl -I -s -w "%{http_code}%" -o /dev/nullwww.baidu.com`
  . /etc/init.d/functions
  web(){
  status=`curl -I -s $1 |awk'NR==1{print $(NF-1)}'`
  if [ -z $status ]
  then
  action "$1 is fail !" /bin/false
  else
  action "$1 is OK !" /bin/true
  fi
  }
  web $1
  #
  ====================================================
  # sh webjk.sh www.baidu.com
  www.baidu.com is OK !                                    
  # sh webjk.sh www.baidu.com1
  www.baidu.com1 is fail !                                 
  # sh webjk.sh t.tt
  t.tt is OK !                                             
  # cat webjk.sh
  #####################################################

页: [1]
查看完整版本: 监控 MySQL的多种方法