判断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 看版本
[[email protected] ~]# mysql -uroot -e "select version();"
+-----------+
| version() |
+-----------+
| 5.1.72 |
+-----------+
[[email protected] ~]# echo $?
0
[[email protected] ~]#
mysql -uroot -e "select version();" &>1 >> /dev/null ; echo $?
#################################
方法4:让开发写java或者php等程序监控
#################################
方法5:使用上面4中监控方法的组合
######################################
######################################
脚本1
[[email protected] 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
[[email protected] script]#
######################################
######################################
脚本2
[[email protected] 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
[[email protected] script]#
######################################
######################################
脚本3 推荐方法
[[email protected] 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
[[email protected] script]#
######################################
######################################
脚本4
[[email protected] 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
[[email protected] script]#
#################### ###############
监控其他服务都可以参考上面几种监控方法
监控web服务的手段
1.本地:ss、netstat、lsof
远程:telnet、nmap、nc
2.本地进程数
ps -ef |grep xxx
3.curl -s -I 看返回值是否为200
wget