当前位置: 首页 > 编程笔记 >

Linux下一个智能重启Apache服务器的脚本分享

邢鸿博
2023-03-14
本文向大家介绍Linux下一个智能重启Apache服务器的脚本分享,包括了Linux下一个智能重启Apache服务器的脚本分享的使用技巧和注意事项,需要的朋友参考一下

说明下:我的主机为 Centos 系统,各步操作的说明都写在了注释里面,方便阅读。

vi apachemonitor.sh

#!/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

然后执行: chmod +x apachemonitor.sh

添加开机启动项:
vi /etc/rc.d/rc.local

我的rc.local脚本内容为:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/root/lampmonitor.sh

 类似资料:
  • 请使用 Apache 2.4 版本。 通过 OpenSSL 生成 SSL 数字认证 免费 Self-Signed SSL 数字认证用户请看. 如果你是 SSL 付费认证用户可跳过此步. openssl genrsa -out privkey.pem 2048 openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095 在 S

  • 本文向大家介绍Linux下启动多个mysql服务器例子,包括了Linux下启动多个mysql服务器例子的使用技巧和注意事项,需要的朋友参考一下 1、  创建多个mysql database目录 2、  设置database目录权限 3、  拷贝、设置my.cnf 添加my.cnf 4、  添加启动脚本: 5、OK,chmod a+x my.cnf,./my.cnf,启动 6、Ok,启动正常,如上图

  • 5.1.1. 服务器端脚本和实用工具概述 5.1.2. mysqld-max扩展MySQL服务器 5.1.3. mysqld_safe:MySQL服务器启动脚本 5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 MySQL服务器,即mysqld,是在MySQL安装中负责大部分工作的主程序。服务器随附了几个相关脚

  • 本文向大家介绍Linux下php5.4启动脚本,包括了Linux下php5.4启动脚本的使用技巧和注意事项,需要的朋友参考一下 废话不多说,直接上步骤 1、修改php-fpm.conf配置文件 修改/usr/local/php/etc/php-fpm.conf(当然这个跟你配置的php路径相关)配置文件 启动pid=run/php-fpm.pid 启动error_log=log/php-fpm.l

  • 服务器重启后无法启动Apache HTTPD。我们 /etc/httpd/conf/拥有功能。用户/组。因此,我们使用脚本来启动httpd.conf每次服务器重启时,我们都无法启动HTTPD。我们发现 /var/run/httpd在重启后被更改为apache/root。因此,脚本无法启动功能下的HTTPD。用户/组。 请帮帮我!!!

  • 请使用 Apache 2.4 版本。 准备工作 安装和启用需要的模块。 在 Ubuntu 系统上可以使用以下命令: sudo a2enmod rewrite sudo a2enmod proxy_http Apache 环境下部署 Seahub/FileServer Seahub 是 Seafile 服务器的网站界面. FileServer 用来处理浏览器端文件的上传与下载. 默认情况下, 它在