640X60广告位招租 qq245909083

Linux下如何监控httpd挂了没有并自动重启apache

分享时间:2019-10-13 584 热度℃
1、创建被监控的文件 test.html 内容如下:
OK

为了尽可能简单,这里只用一个 OK 的空 html 文件作为监控文件。
上传此文件到服务器根目录:/var/www/

2、创建脚本 auto_restart_apache.sh ,内容如下:

#!/bin/bash
while [ 1 ]
do
        wget http://127.0.0.1/test.html > /dev/null 2>&1
        if [ $? -ne 0 ]
        then
                service apache2 restart >/dev/null 2>&1
                        echo "apache restart at `date +%y-%m-%d\ %H:%M:%S`" >> apache_restart_logs.txt
        else
                wt=`cat test.html`
                if [ $wt != 'OK' ]
                then
                        service apache2 restart > /dev/null 2>&1
                        echo "apache restart at `date +%y-%m-%d\ %H:%M:%S`" >> apache_restart_logs.txt
                fi
        fi
rm -rf test.html
sleep 1m
done
上传此文件到服务器。

注释:
1) 该脚本会读取 test.html 文件并且在本地生成 apache_restart_logs.txt 日志文件。
2) 脚本中每 1分钟进行一次监控,如果 apache 服务挂掉了则会自动进行重启,如果需要自定义检查频率,可以修改其中的:


sleep 1m

改成 sleep 30s 等等。

3、后台运行 auto_restart_apache.sh 监控脚本:


sh auto_restart_apache.sh &

前台运行与后台运行脚本的区别就是结尾的 & 符号。

附注:
1) 执行这条命令后通常会给出一个进程号例如 2239,如果需要杀死这个脚本进程,可以使用命令杀死即可:

sudo kill 2239


2) 事后如想查看这一进程,可以使用如下命令:

ps -ef | grep apache
返回顶部