Linux下Apache自动监测重启脚本(智能化程度较高)

本站原创 [基于 署名-非商业使用-相同方式分享 2.5 协议,转载须注明链接]

本文所述apache监控脚本已经过VPS管理百科验证

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

脚本功能与特点

1、能够每隔一段时间监测Apache服务器的可用性(由于本脚本直接模拟了客户端的访问,因此这里的“可用性”是指切切实实的正常可访问)

2、在出现无法访问的情况下,能够自动重启Apache服务(强行重启)

3、在重启后仍然无法正常访问的话,自动执行更进一步的操作(比如发送邮件、重启服务器等)

后文将给出此脚本的具体使用方法与注释,大家可以根据自己的情况手动修改(需了解一定bash shell编程)。

脚本内容

#!/bin/bash

# 本脚本由VPS管理百科编写
# 访问:http://WWW.BOOTF.COM 获取技术支持

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

下载完整无误的监控脚本

点击下载: apachemonitor.tar.gz

使用方法

使用方法非常灵活,总之让上面的脚本在开机后一直执行就行了。由于脚本使用了curl命令,因此还需要安装curl环境。安装curl的方法:

根据发行版选择下面两条命令即可:

平板视图打印?
1 yum installcurl

平板视图打印?
1 apt-get installcurl

转载于:https://blog.51cto.com/liuhua/1243187

Linux下Apache自动监测重启脚本相关推荐

  1. 1 在 Linux 下开机自动重启脚本(亲测)

    /etc/rc.local 开机启动程序,把需要开机自动运行的程序写在这个脚本里 /etc/init.d 这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本. 要重新启 ...

  2. Linux 下开机自动重启脚本

    Crontab 使用 @reboot 来执行主机启动之后的命令,命令如下: $ crontab -e 添加一下内容: @reboot /root/script/restart.sh 完成后,这个脚本就 ...

  3. linux下apache服务器的配置和管理(启动、重启、中断服务)

    2019独角兽企业重金招聘Python工程师标准>>> linux下apache服务器的配置和管理 一.两个重要目录: Apache有两个重要的目录: 1.配置目录/etc/http ...

  4. 重启apache下php,linux下apache重启并查看php环境

    本文主要和大家分享linux下apache重启并查看php环境,本文主要以代码来和大家分享,希望能帮助到大家. 首先切换到init.d目录下cd /etc/rc.d/init.d 然后ls列出目录: ...

  5. Linux系统终止httpd服务,【转】Linux下apache/httpd服务启动与停止

    apache服务,或者说httpd服务,如何启动,如何开机启动. 转来转去,找不到原文.. 操作系统环境:红帽5,具体如下: # uname -a Linux machine1 2.6.18-164. ...

  6. linux启停was命令,linux下的启停脚本

    linux下的根据项目名称,进行进程的启停脚本 #!/bin/bash JAVA=/usr/bin/java APP_HOME=/opt/program/qa/wechat APP_NAME=prog ...

  7. Linux下Apache虚拟主机配置

    说明: Apache版本:httpd-2.2.31 Apache安装目录:/usr/local/apache 目的: 配置Apache虚拟主机 具体操作: 1.修改Apache主配置文件 cp /us ...

  8. linux mysql端口启动失败怎么办,Linux下apache mysql等服务修改默认端口后无法正常启动解决办法...

    Linux下apache mysql等服务修改默认端口后无法正常启动解决办法 linux下 apache 等服务修改默认端口后无法正常启动解决办法 服务器上装了两个webserver,一个是nginx ...

  9. 解决Linux下无法利用shell脚本启动conda虚拟环境问题

    解决Linux下无法利用shell脚本启动conda虚拟环境问题 问题 直接在脚本中激活conda环境时遇到了一个问题 解决 查看.bashrc文件 .bashrc文件在 /home/用户名 里面,因 ...

最新文章

  1. stm32无法进入串口接收中断
  2. java中怎样创建多个对象,java中StringBuilder.appent方法创建几个对象
  3. 前端学习(566):margin auto机制
  4. assume用法及意思_词汇精选:assume的用法和辨析
  5. Facebook全球宕机6小时!小扎损失60亿,15亿用户数据被出售
  6. 电大计算机网络本作业1,2017年最新电大计算机网络作业1-3答案.doc
  7. sql int 比较_SQL进阶--错题集1
  8. linux tar命令压缩_Linux tar命令来压缩和提取文件
  9. Redis数据类型之字符串String
  10. 网络游戏植入广告营销案例
  11. IEEE1588精密网络同步时钟协议(PTP)-v2.0协议浅析
  12. Cygwin安装教程【超详细】
  13. 什么是代理服务器及其作用
  14. 【no-descending-specificity】问题
  15. go之无缓冲channel(通道)和有缓冲channel(通道)
  16. CANopen--基于DS402协议的伺服电机原点回零模式
  17. php实现bigpipe
  18. 飞天含雪看“网络红人”----社会浮躁下的一场闹剧
  19. 与西安协同销售总监赵建春先生避风塘聊天记
  20. 从键盘输入一个小写字母,转化为大写字母并输出。

热门文章

  1. PATH and LDFLAGS and CFLAGS
  2. error_reporting(“E_ALL”)和ini_set(“display_errors”, “on”)的区别?
  3. HttpWebResponse 的问题
  4. CSS文本对齐text-align详解
  5. 微信小程序+微信公众号开发总结
  6. oracle授权、表备份、用户管理
  7. iOS使用NSMutableAttributedString实现富文本
  8. [WPF系列]-Deep Zoom
  9. Qt 读写XML文件
  10. XCTF-高手进阶区:PHP2