编写脚本监测Apache服务状态,并实现自动维护功能

Posted 自学吧交流社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写脚本监测Apache服务状态,并实现自动维护功能相关的知识,希望对你有一定的参考价值。

运行环境

CentOS 6.8 、Xshell 5

前言

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。 
Apache服务的正确运行是是保证网站能够正常访问的前提,在实现服务器Apache状态监测中使用自动化运维会节省大量人力。 
我们可以编写一个脚本,用于监测Apache服务状态,如果服务运行正常则记录入正确日志;如果服务down掉了,则脚本自动将服务启动,并将错误记录入错误日志中。每隔10分钟监测一次Apache服务状态,即每隔10分钟自动执行一次脚本。

正文

① 判断httpd进程是否执行

我的电脑是预安装了Apache的,由Apache提供httpd服务

ps aux | grep httpd | grep -v grep 
该指令为:列出当前服务器运行的进程,并查找出httpd服务进程。如果httpd服务正在运行,则会有输出结果,如果httpd服务未运行,则不会有结果输出。另外需要注意的是我们在使用grep httpd这条指令的时,引进了httpd这个关键字,所以应加grep -v grep 来排除grep相关的干扰。



② 编写成脚本文件

vim autoapache.sh 
创建一个名为autoapache.sh的脚本文件

我们在vim编辑器中将一下内容写入脚本中

    #!/bin/bash
        status=$(ps aux | grep httpd | grep -v grep)        # 截取httpd进程,并把结果赋予变量status
        if [ -n "$status" ]        # 如果status的值不为空,即httpd服务存在,则执行then中的命令
                then
                echo "$(date) httpd is OK!" >> /tmp/autostart-acc.log        # 将当前的正确状态记录入正确运行日志中
                else
                /etc/rc.d/init.d/httpd start &>/dev/null        # httpd服务异常时,重新启动httpd服务,并将启动信息扔入null文件夹中
                echo "$(date) restart httpd!" >> /tmp/autostart-err.log        # 重启httpd服务后,将错误信息记录入错误日志文件中
        fi
  
    
    
  
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14



将脚本使用:wq保存退出


③ 配置脚本文件

chmod -R 777 /root/sh/autoapache.sh #更改脚本执行权限 
vim /etc/crontab #使用crontab服务创建自动执行任务 
在/etc/crontab文件最后添加定时任务,加入以下文本

*/10 * * * * root /root/sh/autoapache.sh #每隔10分钟自动执行一次脚本



最后重启crontab服务让新配置的定时任务生效   
service crond restart

到此我就就已经创建了一个每隔十分钟运行一次用于监测Apache服务状态的脚本了。

FAQ

① 在脚本中我们启动httpd服务用的是/etc/rc.d/init.d/httpd start,而不是使用service httpd start。因为前者是Linux中服务启动的标准方法,而后者是RedHat、CentOS等系统中的启动方法,所以为了保证我们的脚本的通用性,选择前者为宜。 
② 关于crontab 定时任务的补充:

每五分钟执 */5 * * * * 
每小时执行 0 * * * * 
每天执行 0 0 * * * 
每周执行 0 0 * * 0 
每月执行 0 0 1 * * 
每年执行 0 0 1 1 *


以上是关于编写脚本监测Apache服务状态,并实现自动维护功能的主要内容,如果未能解决你的问题,请参考以下文章

Linux下shell脚本监控Tomcat的状态并实现自动启动

用Python脚本监测.py脚本的进程状态,并实现中断重启。

OGG维护优化脚本(二十四)-OGG状态监控系统--后台脚本

实时监测Tomcat服务的状态,如果关闭,自动开启(已解决)

1python脚本——监测服务器状态

Last命令使用