Linux下一个智能重启Apache服务器的脚本分享

 更新时间:2015年07月08日 09:42:06   投稿:goldensun  
这篇文章主要介绍了Linux下一个智能重启Apache服务器的脚本分享,当检测到脚本中所设定的服务器异常情况下便可执行自动重启,需要的朋友可以参考下

说明下:我的主机为 Centos 系统,各步操作的说明都写在了注释里面,方便阅读。

vi apachemonitor.sh

#!/bin/bash

URL=”http://127.0.0.1/”
curlit()
{
curl –connect-timeout 15 –max-time 20 –head –silent “$URL” | grep '200′
# 上面的15是连接超时时间,若访问localhost的HTTP服务超过15s仍然没有正确响应200头代码,则判断为无法访问。
}
doit()
{
if ! curlit; then
# 如果localhost的apache服务没有正常返回200头,即出现异常。执行下述命令:
sleep 20
top -n 1 -b >> /var/log/apachemonitor.log
# 上面将top命令内容写入日至文件备查
/usr/bin/killall -9 apache2 && /usr/bin/killall -9 php5-cgi && /usr/bin/killall -9 httpd

&& /usr/bin/killall -9 http && /usr/bin/killall -9 apache

&& /usr/bin/killall -9 php-cgi > /dev/null
# 兼容起见,杀死了各种apache的进程。可以根据自己apache服务的特点修改
sleep 2
/etc/init.d/apache2 start > /dev/null
/etc/init.d/httpd start > /dev/null
# 兼容起见,执行了两种apache重启命令,可根据需要自己修改。
echo $(date) “Apache Restart” >> /var/log/apachemonitor.log
# 写入日志
sleep 30
# 重启完成后等待三十秒,然后再次尝试一次
if ! curlit; then
# 如果仍然无法访问,则:
echo $(date) “Failed! Now Reboot Computer!” >> /var/log/apachemonitor.log
# 写入apache依然重启失效的日志
reboot
# 重启机器呗。实际上重启整个服务器是一种非常不得已的做法。本人并不建议。大家根据需要自己修改,比如短信、邮件报警什么的。
fi
sleep 180
fi
}
sleep 300
# 运行脚本后5分钟后才开始正式工作(防止重启服务器后由于apache还没开始启动造

成误判)
while true; do
# 主循环体
doit > /dev/null
sleep 10
done

然后执行: chmod +x apachemonitor.sh

添加开机启动项:
vi /etc/rc.d/rc.local

我的rc.local脚本内容为:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/root/lampmonitor.sh

相关文章

  • 阿里云Linux主机安装WDCP管理面板(包含lamp+lnmp+lanmp环境)

    阿里云Linux主机安装WDCP管理面板(包含lamp+lnmp+lanmp环境)

    这篇文章主要介绍了阿里云Linux主机安装WDCP管理面板(包含lamp+lnmp+lanmp环境),需要的朋友可以参考下
    2017-08-08
  • CentOS6.5与CentOS7 ssh修改默认端口号的方法

    CentOS6.5与CentOS7 ssh修改默认端口号的方法

    这篇文章主要介绍了CentOS6.5与CentOS7 ssh修改默认端口号的方法,结合实例形式分别描述了CentOS6.5及CentOS7针对ssh修改默认端口号的具体操作步骤、相关命令与使用技巧,需要的朋友可以参考下
    2018-04-04
  • linux vim一些实用的快捷键和方法分享

    linux vim一些实用的快捷键和方法分享

    这篇文章主要介绍了linux vim一些实用的快捷键和方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • linux中的7z命令参数说明

    linux中的7z命令参数说明

    Linux中的7z命令具备多样的参数来控制其功能,如添加文件、删除、提取、更新存档等。常用的命令包括a、d、e、x等,而开关如-o、-p、-m等则进一步定义了操作的细节,例如设置密码、输出目录和压缩方法。此命令强大且灵活,适合进行文件压缩和管理
    2024-09-09
  • apache的AllowOverride以及Options使用详解

    apache的AllowOverride以及Options使用详解

    通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置
    2012-11-11
  • Xshell远程连接linux详细步骤(小白必备)

    Xshell远程连接linux详细步骤(小白必备)

    本文主要介绍了Xshell远程连接linux详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 如何使用​win10内置的linux系统启动spring-boot项目

    如何使用​win10内置的linux系统启动spring-boot项目

    这篇文章主要介绍了如何使用​win10内置的linux系统启动spring-boot项目,需要的朋友可以参考下
    2020-07-07
  • linux服务器显卡崩溃解决方案

    linux服务器显卡崩溃解决方案

    这篇文章主要介绍了linux服务器显卡崩溃解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Linux命令搜索命令whereis与which的区别

    Linux命令搜索命令whereis与which的区别

    这篇文章主要介绍了Linux命令搜索命令whereis与which的区别的相关资料,这里举例说明该如何区别他们之家的用法,需要的朋友可以参考下
    2017-08-08
  • 深入理解Linux负载均衡LVS

    深入理解Linux负载均衡LVS

    LVS是Linux Virtual Server 的简称,也就是linux虚拟服务器。LVS 是一个实现负载均衡集群的开源软件项目,LVS架构从逻辑上可分为调度层、Server集群层和共享存储
    2021-06-06

最新评论