#!/bin/bash
# Linux监控apache服务,关闭就自动重启
URL="https://domin"
result(){
# 若访问HTTP服务超过10s仍然没有正确响应200头代码,则判断为无法访问。
curl --connect-timeout 10 --max-time 20 --silent "$URL" | grep '200'
}
doit(){
if ! result; then
echo $(date) "Apache service is stop!" >> /etc/httpd/conf/apachemonitor.log
# 杀死全部apache的进程
pkill -9 httpd > /dev/null
sleep 2
# 运行Apache启动命令(根据自己的服务来改)
sudo service httpd start > /dev/null
echo $(date) "Success, Apache restart successful!" >> /etc/httpd/conf/apachemonitor.log
sleep 10
# 重启完成后等待十秒,然后再次尝试一次
if ! result; then
# 如果仍然无法访问,写入apache重启失效的日志
echo $(date) "Failed, Apache restart failed!" >> /etc/httpd/conf/apachemonitor.log
fi
fi
}
切换到root命令,在cron里面添加一条任务,用来执行我们上面写的shell脚本。
1、 查看当前已有的任务:
crontab -l
2、修改添加任务:
crontab -e
设置5分钟执行一次。