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 终端中查找域名 IP 地址的命令(五种方法)

    在 Linux 终端中查找域名 IP 地址的命令(五种方法)

    本教程介绍了如何在 Linux 终端验证域名或计算机名的 IP 地址。我们将教你如何有效使用这些命令在 Linux 终端中识别多个域的 IP 地址信息
    2019-12-12
  • xshell上传下载文件(Windows、Linux)

    xshell上传下载文件(Windows、Linux)

    Windows下载的软件包,如何上传到远程Linux主机上?如何从Linux主机下载软件包到Windows下,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • CentOS 设置默认JDK步骤详解及命令

    CentOS 设置默认JDK步骤详解及命令

    这篇文章主要介绍了 CentOS 设置默认JDK步骤详解及命令的相关资料,这里对配置Java的环境进行了详细的介绍,需要的朋友可以参考下
    2016-11-11
  • centos7.2搭建LAMP环境的具体操作方法

    centos7.2搭建LAMP环境的具体操作方法

    下面小编就为大家带来一篇centos7.2搭建LAMP环境的具体操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 6ull加载linux驱动模块失败解决方法

    6ull加载linux驱动模块失败解决方法

    大家好,本篇文章主要讲的是6ull加载linux驱动模块失败解决方法,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • LuManager Linux/Unix服务器管理面板推荐之国产面板

    LuManager Linux/Unix服务器管理面板推荐之国产面板

    国外VPS 大多数是 Linux /Unix平台,Linux/Unix平台的优点也很多,重点是它还是免费的,(用过美国VPS 的朋友都知道国外IDC 装Windows是需要版权费的)国内大型网站几乎都是用Linux/Unix平台
    2012-09-09
  • linux压缩解压文件夹命令zip unzip和tar详解

    linux压缩解压文件夹命令zip unzip和tar详解

    本文介绍了如何使用zip和unzip命令处理.zip文件,以及如何使用tar命令处理.tar、.tar.gz、.tar.bz2和.tar.xz文件,包括压缩、解压、查看压缩包内容、打包与压缩、解压到指定目录、排除文件、递归压缩和压缩算法对比等内容
    2025-02-02
  • 如何卸载linux自带openjdk并安装sun jdk

    如何卸载linux自带openjdk并安装sun jdk

    这篇文章主要介绍了如何卸载linux自带openjdk并安装sun jdk,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17详细配置

    Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17详细配置

    算不上经验,只能说是个人总结.在搭建过程中遇到的问题.并记录下来.刚开学习始搭建环境的朋友少走一些弯路.这没有过多的参数,并不是什么高性能网站的部署.本人经验有限,在此分享一些遇到的问题.
    2012-06-06
  • Linux系统架构类型的5条常用查看命令

    Linux系统架构类型的5条常用查看命令

    很多时候我们都需要查看当前 Linux 系统是 32 位还是 64 位系统架构类型,本文中我将向大家推荐 5 条常用命令,感兴趣的小伙伴们可以参考一下
    2016-07-07

最新评论