web服务器php、mysql的健康状态检测
2010-03-31 15:04
936 查看
有时候php业务的网站突然无法访问,我们会去查找原因,首先会判断是不是web服务器挂了,然后再去查询是不是数据库挂了,这里提供一个脚本自动去检测是web服务器和数据库服务器,去确定到底是哪个服务器挂掉,并自动去启动相对应的服务!# vi check.sh#!/bin/shcd /usr/local/sbin
test -e "checkweb.php" && rm -rf checkweb.php
test -e "checkdb.php" && rm -f checkdb.php
test -e "wget-log" && rm -f wget-log
test -e "wget-log.1" && rm -f wget-log.1wget -b "http://127.0.0.1/checkweb.php" > /dev/null 2>&1
wget -b "http://127.0.0.1/checkdb.php" > /dev/null 2>&1
sleep 2checkweb=`cat checkweb.php`
checkdb=`cat checkdb.php`if
[ "$checkweb" == "ok" ] ;then
echo "`date +%d/%m/%Y:%H:%M:%S` - - Webserver successfully!"
if
[ "$checkdb" == "ok" ] ;then
echo "`date +%d/%m/%Y:%H:%M:%S` - - Mysql connected successfully!"
echo " "
echo "-------------------------------------------------------------"
elif
[ "$checkdb" != "ok" ] ;then
/etc/init.d/mysqld restart
echo "`date +%d/%m/%Y:%H:%M:%S` - - Mysql connected bad!restart successful!"
curl "http://sms.api.bz/fetion.php?username=150********&password=******&sendto=150********&message=php连接数据库失败,数据库重启成功!"
echo " "
echo "-------------------------------------------------------------"
fi
exit 0
elif
[ "$checkweb" != "ok" ] ;then
killall -9 nginx
/usr/local/nginx/sbin/nginx
/usr/local/php-fcgi/sbin/php-fpm restart
echo "`date +%d/%m/%Y:%H:%M:%S` - - Webserver is down!restart successfully!"
wget -b "http://127.0.0.1/checkdb.php" > /dev/null 2>&1
sleep 2
checkdb2=`cat checkdb.php`
if
[ "$checkdb2" == "ok" ] ;then
echo "`date +%d/%m/%Y:%H:%M:%S` - - Mysql connected successfully!"
curl "http://sms.api.bz/fetion.php?username=150********&password=******&sendto=150********&message=php服务器down机,重启成功!"
echo " "
echo "-------------------------------------------------------------"
elif
[ "$checkdb2" != "ok" ] ;then
/etc/init.d/mysqld restart
echo "`date +%d/%m/%Y:%H:%M:%S` - - Mysql connected bad!restart successful!"
curl "http://sms.api.bz/fetion.php?username=150********&password=******&sendto=150********&message=php服务器,mysql服务器down机,重启成功!"
echo " "
echo "-------------------------------------------------------------"
fi
exit 0ficheckweb.php内容:<?php
echo "ok";
?>;checkdb.php内容:<?php
//测试php数据库链接状态的脚本
$mysql_user = "dbuser";
$mysql_password = "dbpwd";$link = mysql_connect("localhost",$mysql_user,$mysql_password) or die("bad");
print ("ok");
mysql_close($link);
?>
#crontab -e*/2 * * * * /usr/local/sbin/check.sh >> /var/log/check.log本文出自 “技术成就成就梦想” 博客,请务必保留此出处http://lin128.blog.51cto.com/407924/290021
test -e "checkweb.php" && rm -rf checkweb.php
test -e "checkdb.php" && rm -f checkdb.php
test -e "wget-log" && rm -f wget-log
test -e "wget-log.1" && rm -f wget-log.1wget -b "http://127.0.0.1/checkweb.php" > /dev/null 2>&1
wget -b "http://127.0.0.1/checkdb.php" > /dev/null 2>&1
sleep 2checkweb=`cat checkweb.php`
checkdb=`cat checkdb.php`if
[ "$checkweb" == "ok" ] ;then
echo "`date +%d/%m/%Y:%H:%M:%S` - - Webserver successfully!"
if
[ "$checkdb" == "ok" ] ;then
echo "`date +%d/%m/%Y:%H:%M:%S` - - Mysql connected successfully!"
echo " "
echo "-------------------------------------------------------------"
elif
[ "$checkdb" != "ok" ] ;then
/etc/init.d/mysqld restart
echo "`date +%d/%m/%Y:%H:%M:%S` - - Mysql connected bad!restart successful!"
curl "http://sms.api.bz/fetion.php?username=150********&password=******&sendto=150********&message=php连接数据库失败,数据库重启成功!"
echo " "
echo "-------------------------------------------------------------"
fi
exit 0
elif
[ "$checkweb" != "ok" ] ;then
killall -9 nginx
/usr/local/nginx/sbin/nginx
/usr/local/php-fcgi/sbin/php-fpm restart
echo "`date +%d/%m/%Y:%H:%M:%S` - - Webserver is down!restart successfully!"
wget -b "http://127.0.0.1/checkdb.php" > /dev/null 2>&1
sleep 2
checkdb2=`cat checkdb.php`
if
[ "$checkdb2" == "ok" ] ;then
echo "`date +%d/%m/%Y:%H:%M:%S` - - Mysql connected successfully!"
curl "http://sms.api.bz/fetion.php?username=150********&password=******&sendto=150********&message=php服务器down机,重启成功!"
echo " "
echo "-------------------------------------------------------------"
elif
[ "$checkdb2" != "ok" ] ;then
/etc/init.d/mysqld restart
echo "`date +%d/%m/%Y:%H:%M:%S` - - Mysql connected bad!restart successful!"
curl "http://sms.api.bz/fetion.php?username=150********&password=******&sendto=150********&message=php服务器,mysql服务器down机,重启成功!"
echo " "
echo "-------------------------------------------------------------"
fi
exit 0ficheckweb.php内容:<?php
echo "ok";
?>;checkdb.php内容:<?php
//测试php数据库链接状态的脚本
$mysql_user = "dbuser";
$mysql_password = "dbpwd";$link = mysql_connect("localhost",$mysql_user,$mysql_password) or die("bad");
print ("ok");
mysql_close($link);
?>
#crontab -e*/2 * * * * /usr/local/sbin/check.sh >> /var/log/check.log本文出自 “技术成就成就梦想” 博客,请务必保留此出处http://lin128.blog.51cto.com/407924/290021
相关文章推荐
- UBUNTU 配置WEB服务器,PHP,MYSQL,PHPADMIN,APARCHE .
- ubuntu 12.04 安装 nginx+php+mysql web服务器
- ubuntu 12.04 安装 nginx+php+mysql web服务器
- PHPWAMP配置应该如何修改,Web服务器、php、mysql的具体配置修改
- rhel5.8的系统上安装nginx+php(FastCGI)+mysql 来构建一个高效的web服务器
- Windows下Apache+PHP+MySQL搭建web服务器
- Mac OS X Snow Leopard 开启Web共享,建立Web服务器:Apache+PHP+MySql
- ubuntu 12.04 安装 nginx+php+mysql web服务器
- 【Nginx+php(FastCGI)+Memcached+Mysql+APC高性能web服务器】
- PHP+Apache+MySQL经典搭配,创建环境二 Apache Web服务器安装(转载并修改)
- CentOS+Nginx+PHP+MySQL 搭建高性能的web服务器
- CentOS Nginx1.2.5 MySql 5.5.28 php 5.3.19 搭建web服务器+流媒体服务器
- 手把手教你在centos下编译安装配置高性能web服务器环境nginx+php(fast-cgi)+mysql等/适合小内存vps使用
- Windows+Apache+PHP+Mysql 的web服务器 推荐一个好的网站
- 用定制的PHP应用程序来获取Web服务器的状态信息
- Nginx+Apache+Mysql+Php+eaccelerator+Zend构建高性能的WEB服务器
- Ubuntu 11.04 安装nginx+php5+mysql 的web服务器
- Python实现的检测web服务器健康状况的小程序
- web服务器 linux+apache+tomcat+mysql+jsp+php 整合安装
- Linux+Apache+MySQL+PHP搭建高性能的web服务器