昨天进行数据库迁移时,恰巧有人访问,提示“Error establishing a database connection”,还非常热心的提供了一段mysqld的进程监控代码,自然今天简单改一下分享给需要的站长朋友。
网站环境偶尔会出现特殊情况造成mysql或者php进程被系统杀死的情况,nginx极少数情况会挂掉。为了保障网站的正常运行,我们可以为服务器增加一个进程监控脚本,以防止mysql或者php挂掉造成网站无法访问。
脚本内容
这个脚本必须由root来执行
#!/bin/bash #mysql进程监控 pgrep -x mysqld &> /dev/null if [ $? -ne 0 ];then echo “At time: `date` :MySQL is stop .”>> /root/public_log /usr/sbin/service mysqld start else echo “MySQL server is running .” fi #php进程监控 pgrep -x php-fpm &> /dev/null if [ $? -ne 0 ];then echo “At time: `date` :php-fpm is stop .”>> /root/public_log /usr/sbin/service php-fpm start else echo “php-fpm server is running .” fi #nginx进程监控 pgrep -x nginx &> /dev/null if [ $? -ne 0 ];then echo “At time: `date` :Nginx is stop .”>> /root/public_log /usr/sbin/service nginx start else echo “Nginx server is running .” fi
添加定时监控。每隔5分钟执行一次
*/5 * * * * /root/public.sh
总结
由于之前博客一直稳定运行,昨天做了一次数据库迁移,站长看到了数据库连接错误,给自然提了这个建议,一般情况我们的网站环境是稳定运行的,但不排除特殊情况造成的熄火,有一个进程监控还是非常不错的。