学习啦 > 学习电脑 > 电脑故障 > 电脑故障现象 > 自动重启 >

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

时间: 加城1195 分享

  自动重启故障相信大家都遇到过,原因也有很多,跟系统,硬件或者外界因素都有关。这篇文章主要介绍了智能监测自动重启Apache服务器的Shell脚本,实现监控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中即可。

  补充:电脑总是自动重启怎么办

  1、右击“我的电脑”,选择“属性”项。

  2、在打开的系统属性窗口中选择“高级系统设置”项进入。

  3、在打开的“系统属性”窗口中,切换至“高级”选择卡,然后点击“系统和故障恢复 设置”按钮。

  4、在打开的窗口中取消勾选“自动重启启动”项并按确认即可。

  5、当电脑在使用的过程中产生蓝屏时,我们就可以进入“系统日志”管理器中查看产生系统失败的根源啦。打开“运行”对话框,输入命令“eventvwr.msc”即可查看日志信息,从中定位系统产生失败的原因。

  6、当然,我们也可以通过禁用某些开机项来尝试修复系统。打开“运行”对话框,输入命令“msconfig”进入“系统配置实用程序”界面,勾选“常规”选项卡下的“诊断启动”选项。

  7、还有一种修复计算机蓝屏或重启故障的方法,就是在电脑启动时按“F8”进入系统故障菜单,从中选择“安全模式”进入或“最后一次正确的配置”项进入系统,将及有可能修复系统。

  8、当然,如果以上方法均不能解决问题,那么建议您还是重新安装一下系统,毕竟安装系统所耗费的时间相对修复所用时间要少许多。一劳永逸之事才是王道。

  相关阅读:电脑自动重启方法

  方法一:

  1、打开控制面板-管理工具-计划任务程序

  2、创建基本任务,名称栏目,输入“定时重启”,下一步;

  3、在窗口里,有每天、每周、每月、一次各种选择,这里小诚选择一次,这次执行完就失效,您可以根据自己的情况进行选择哈,点击下一步;

  4、设置重启的日期、时间点,下一步;

  5、选择启动程序,下一步;

  6、在打开页面里,点击浏览,找到C;\Windows\System32\Shutdown.exe,点击打开;

  7、在添加参数栏目里输入“-r”(重启),进行下一步

  8、点击完成,即可实现自动重启了

  方法二:

  网上搜索个自动重启关机类软件,这比较多,简单设置一下就可以了。


自动重启Apache服务器的Shell脚本相关文章:

1.windows下怎么启动apache

2.linux安装apache命令

3.linux shell脚本执行命令

4.使用脚本实现故障时自动重启Apache代码

5.如何在Windows下运行linux shell脚本

4022767