Linux下Apache自动监测重启脚本
Linux下Apache自动监测重启脚本(智能化程度较高)
本站原创 [基于 署名-非商业使用-相同方式分享 2.5 协议,转载须注明链接]
本文所述apache监控脚本已经过VPS管理百科验证
由于需要监控某些要求高可用性的Apache服务器,除了专业的监控报警设备,低成本下在Apache服务器上写一个自动监测Apache状态的脚本是个不错的主意。在网上搜索了许多类似的脚本,但由于局限性较大,也都存在一些不完善的地方,所以自己写了一个。
脚本功能与特点
1、能够每隔一段时间监测Apache服务器的可用性(由于本脚本直接模拟了客户端的访问,因此这里的“可用性”是指切切实实的正常可访问)
2、在出现无法访问的情况下,能够自动重启Apache服务(强行重启)
3、在重启后仍然无法正常访问的话,自动执行更进一步的操作(比如发送邮件、重启服务器等)
后文将给出此脚本的具体使用方法与注释,大家可以根据自己的情况手动修改(需了解一定bash shell编程)。
脚本内容
#!/bin/bash
# 本脚本由VPS管理百科编写
# 访问:http://WWW.BOOTF.COM 获取技术支持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
下载完整无误的监控脚本
点击下载: apachemonitor.tar.gz
使用方法
使用方法非常灵活,总之让上面的脚本在开机后一直执行就行了。由于脚本使用了curl命令,因此还需要安装curl环境。安装curl的方法:
根据发行版选择下面两条命令即可:
1
|
yum install curl
|
1
|
apt-get install curl
|
转载于:https://blog.51cto.com/liuhua/1243187
Linux下Apache自动监测重启脚本相关推荐
- 1 在 Linux 下开机自动重启脚本(亲测)
/etc/rc.local 开机启动程序,把需要开机自动运行的程序写在这个脚本里 /etc/init.d 这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本. 要重新启 ...
- Linux 下开机自动重启脚本
Crontab 使用 @reboot 来执行主机启动之后的命令,命令如下: $ crontab -e 添加一下内容: @reboot /root/script/restart.sh 完成后,这个脚本就 ...
- linux下apache服务器的配置和管理(启动、重启、中断服务)
2019独角兽企业重金招聘Python工程师标准>>> linux下apache服务器的配置和管理 一.两个重要目录: Apache有两个重要的目录: 1.配置目录/etc/http ...
- 重启apache下php,linux下apache重启并查看php环境
本文主要和大家分享linux下apache重启并查看php环境,本文主要以代码来和大家分享,希望能帮助到大家. 首先切换到init.d目录下cd /etc/rc.d/init.d 然后ls列出目录: ...
- Linux系统终止httpd服务,【转】Linux下apache/httpd服务启动与停止
apache服务,或者说httpd服务,如何启动,如何开机启动. 转来转去,找不到原文.. 操作系统环境:红帽5,具体如下: # uname -a Linux machine1 2.6.18-164. ...
- linux启停was命令,linux下的启停脚本
linux下的根据项目名称,进行进程的启停脚本 #!/bin/bash JAVA=/usr/bin/java APP_HOME=/opt/program/qa/wechat APP_NAME=prog ...
- Linux下Apache虚拟主机配置
说明: Apache版本:httpd-2.2.31 Apache安装目录:/usr/local/apache 目的: 配置Apache虚拟主机 具体操作: 1.修改Apache主配置文件 cp /us ...
- linux mysql端口启动失败怎么办,Linux下apache mysql等服务修改默认端口后无法正常启动解决办法...
Linux下apache mysql等服务修改默认端口后无法正常启动解决办法 linux下 apache 等服务修改默认端口后无法正常启动解决办法 服务器上装了两个webserver,一个是nginx ...
- 解决Linux下无法利用shell脚本启动conda虚拟环境问题
解决Linux下无法利用shell脚本启动conda虚拟环境问题 问题 直接在脚本中激活conda环境时遇到了一个问题 解决 查看.bashrc文件 .bashrc文件在 /home/用户名 里面,因 ...
最新文章
- stm32无法进入串口接收中断
- java中怎样创建多个对象,java中StringBuilder.appent方法创建几个对象
- 前端学习(566):margin auto机制
- assume用法及意思_词汇精选:assume的用法和辨析
- Facebook全球宕机6小时!小扎损失60亿,15亿用户数据被出售
- 电大计算机网络本作业1,2017年最新电大计算机网络作业1-3答案.doc
- sql int 比较_SQL进阶--错题集1
- linux tar命令压缩_Linux tar命令来压缩和提取文件
- Redis数据类型之字符串String
- 网络游戏植入广告营销案例
- IEEE1588精密网络同步时钟协议(PTP)-v2.0协议浅析
- Cygwin安装教程【超详细】
- 什么是代理服务器及其作用
- 【no-descending-specificity】问题
- go之无缓冲channel(通道)和有缓冲channel(通道)
- CANopen--基于DS402协议的伺服电机原点回零模式
- php实现bigpipe
- 飞天含雪看“网络红人”----社会浮躁下的一场闹剧
- 与西安协同销售总监赵建春先生避风塘聊天记
- 从键盘输入一个小写字母,转化为大写字母并输出。
热门文章
- PATH and LDFLAGS and CFLAGS
- error_reporting(“E_ALL”)和ini_set(“display_errors”, “on”)的区别?
- HttpWebResponse 的问题
- CSS文本对齐text-align详解
- 微信小程序+微信公众号开发总结
- oracle授权、表备份、用户管理
- iOS使用NSMutableAttributedString实现富文本
- [WPF系列]-Deep Zoom
- Qt 读写XML文件
- XCTF-高手进阶区:PHP2