判断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 看版本
[root@LAMP ~]# mysql -uroot -e "select version();"
+-----------+
| version() |
+-----------+
| 5.1.72 |
+-----------+
[root@LAMP ~]# echo $?
0
[root@LAMP ~]#
mysql -uroot -e "select version();" &>1 >> /dev/null ; echo $?
#################################
方法4:让开发写java或者php等程序监控
#################################
方法5:使用上面4中监控方法的组合
######################################
######################################
脚本1
[root@LAMP script]# 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
[root@LAMP script]#
######################################
######################################
脚本2
[root@LAMP script]# 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
[root@LAMP script]#
######################################
######################################
脚本3 推荐方法
[root@LAMP script]# 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
[root@LAMP script]#
######################################
######################################
脚本4
[root@LAMP script]# 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
[root@LAMP script]#
#################### ###############
监控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/null www.baidu.com
wget --spider --timeout=10 --tries=5 10.0.0.3 &>/dev/null ;echo $?
4、写php、java监控程序,模拟用户访问,访问固定的测试页面
#################################################
附带
[root@LAMP script]# cat webjk.sh
#!/bin/sh
#status=`curl -I -s -w "%{http_code}%" -o /dev/null www.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
[root@LAMP script]#
====================================================
[root@LAMP script]# sh webjk.sh www.baidu.com
www.baidu.com is OK ! [ OK ]
[root@LAMP script]# sh webjk.sh www.baidu.com1
www.baidu.com1 is fail ! [FAILED]
[root@LAMP script]# sh webjk.sh t.tt
t.tt is OK ! [ OK ]
[root@LAMP script]# cat webjk.sh
#####################################################