欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

使用脚本实现故障时自动重启Apache

程序员文章站 2022-06-05 09:05:45
最近不知道为什么博客总是莫名其妙地挂掉, 重启apache就好了,我也懒得去研究到底是哪里出了问题。 只是每次都需要手工ssh上去重启apache,有点麻烦...

最近不知道为什么博客总是莫名其妙地挂掉,

重启apache就好了,我也懒得去研究到底是哪里出了问题。

只是每次都需要手工ssh上去重启apache,有点麻烦。

而且有时候在夜里挂掉,一晚上博客就都不能访问了。

后来终于忍无可忍,写了一段脚本来做这件事,代码如下:

复制代码 代码如下:

#!/bin/sh
if ( wget --timeout=5 -q --spider )
then
echo "ok"
else
/etc/init.d/httpd restart
echo "httpd restarted"
fi

原理很简单,就是尝试访问一下博客(第三行),
如果有什么问题,就重启apache(第七行)。
其中wget的参数–spider表示只是访问一下,并不下载内容。
如果你喜欢的话,还可以在else中加一段发邮件的代码,
把apache的error log直接发到邮件,方便分析,不过我就懒得做了。

然后把这段代码保存为check_apache.sh,添加到crontab中:

复制代码 代码如下:

*/5 * * * * /var/www/check_apache.sh

其中*/5表示每5分钟运行一下check_apache.sh。
注意打开crontab的时候要使用sudo,因为重启apache需要sudo权限。

非常实用的一个小功能,给使用linux的小伙伴们发福利啦~