• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    智能监测自动重启Apache服务器的Shell脚本

    由于需要监控某些要求高可用性的Apache服务器,除了专业的监控报警设备,低成本下在Apache服务器上写一个自动监测Apache状态的脚本是个不错的主意。在网上搜索了许多类似的脚本,但由于局限性较大,也都存在一些不完善的地方,所以自己写了一个。

    脚本功能与特点

    1、能够每隔一段时间监测Apache服务器的可用性(由于本脚本直接模拟了客户端的访问,因此这里的“可用性”是指切切实实的正常可访问)
    2、在出现无法访问的情况下,能够自动重启Apache服务(强行重启)
    3、在重启后仍然无法正常访问的话,自动执行更进一步的操作(比如发送邮件、重启服务器等)
    后文将给出此脚本的具体使用方法与注释,大家可以根据自己的情况手动修改(需了解一定bash shell编程)。

    脚本内容:

    #!/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
    

    使用方法
    使用方法非常灵活,总之让上面的脚本在开机后一直执行就行了。由于脚本使用了curl命令,因此还需要安装curl环境。安装curl的方法:
    根据发行版选择下面两条命令即可:

    yum install curl
    apt-get install curl
    

    若希望将其自动启动,则可以把脚本写入rc.local中即可。

    您可能感兴趣的文章:
    • apachetop 实现实时监测web服务器运行情况
    • 使用apachetop实时监控日志、动态分析服务器运行状态
    • linux系统使用python监控apache服务器进程脚本分享
    • 详解Apache配置多个监听端口和不同的网站目录
    上一篇:阿里云主机一键安装lamp、lnmp环境的shell脚本分享
    下一篇:Shell脚本实现的memcached进程监控
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    智能监测自动重启Apache服务器的Shell脚本 智能,监测,自动,重启,Apache,