检测PHP、MYSQL状态是否正常,不正常则发警报到邮箱:
[root@www ~]# ^C
[root@www ~]# cat /data/shell/check_PHP_MYSQL_NGINX.sh
#!/bin/bash
wget http://www.XXXXXXXX.com/test200.php --spider (需要监控的网站)
c_monitor=$?
if [ $c_monitor = "1" ] || [ $c_monitor = "4" ] || [ $c_monitor = "8" ] || [ $c_monitor -ne "0" ]; (其中1、4、8是NGINX、MYSQL、PHP停止时的状态)
then
echo "# Error no 200 status, time: " $(date +"%y-%m-%d %H:%M:%S") "WEB IS DOWN" | mail -s "Critical Info: Website is offline." XXXXXXXX@139.com
fi
# wget http://www.XXXXXXXX.com/index.php --spider
# c_monitor2=$?
# if [ $c_monitor2 = "1" ] || [ $c_monitor2 = "4" ] || [ $c_monitor2 = "8" ] || [ $c_monitor2 = "130" ];
# then
# echo "# Error no 200 status, time: " $(date +"%y-%m-%d %H:%M:%S") "hello" | mail -s "Critical Info: Website is offline." XXXXXXXX@139.com
# fi
############################ check the MySQL ###################################
/etc/init.d/mysqld status &> /dev/null
if [ $? -ne 0 ] ; then
echo "At time: 'data': mysql service is down. " >> /var/log/messages
echo "# MySQL Error status, time: " $(date +"%y-%m-%d %H:%M:%S") "MYSQL IS DOWN" | mail -s "Critical Info: Website is offline." XXXXXXXX@139.com
/usr/bin/killall mysqld
/etc/init.d/mysqld restart
fi
本地上检测PHP,如果有问题则重启PHP临时解决:
[root@www ~]# cat /home/shell/cheak_php_status.sh
#!/bin/bash
wget http://www.cncar.com/index.php --spider
c_monitor=$?
if [ $c_monitor = 1 ] || [ $c_monitor = 4 ] || [ $c_monitor = 8 ] || [$c_monitor -ne 0 ]; (其中1、4、8是NGINX、MYSQL、PHP停止时的状态)
then
/usr/local/webserver/php/sbin/php-fpm restart
fi