使用脚本实现故障时自动重启Apache
最近不知道为什么博客总是莫名其妙地挂掉,
重启Apache就好了,我也懒得去研究到底是哪里出了问题。
只是每次都需要手工SSH上去重启Apache,有点麻烦。
而且有时候在夜里挂掉,一晚上博客就都不能访问了。
后来终于忍无可忍,写了一段脚本来做这件事,代码如下:
#!/bin/sh
if ( wget --timeout=5 -q --spider http://leonax.net/ )
then
echo "ok"
else
/etc/init.d/httpd restart
echo "httpd restarted"
fi
原理很简单,就是尝试访问一下博客(第三行),
如果有什么问题,就重启Apache(第七行)。
其中wget的参数–spider表示只是访问一下,并不下载内容。
如果你喜欢的话,还可以在else中加一段发邮件的代码,
把Apache的error log直接发到邮件,方便分析,不过我就懒得做了。
然后把这段代码保存为check_apache.sh,添加到crontab中:
*/5 * * * * /var/www/check_apache.sh
其中*/5表示每5分钟运行一下check_apache.sh。
注意打开crontab的时候要使用sudo,因为重启Apache需要sudo权限。
非常实用的一个小功能,给使用Linux的小伙伴们发福利啦~
相关推荐
-
智能监测自动重启Apache服务器的Shell脚本
由于需要监控某些要求高可用性的Apache服务器,除了专业的监控报警设备,低成本下在Apache服务器上写一个自动监测Apache状态的脚本是个不错的主意.在网上搜索了许多类似的脚本,但由于局限性较大,也都存在一些不完善的地方,所以自己写了一个. 脚本功能与特点 1.能够每隔一段时间监测Apache服务器的可用性(由于本脚本直接模拟了客户端的访问,因此这里的"可用性"是指切切实实的正常可访问) 2.在出现无法访问的情况下,能够自动重启Apache服务(强行重启) 3.在重启后仍然无法正
-
apache和mysql重启命令
命令为: /etc/rc.d/init.d/httpd restart chown -R mysql:mysql 目录名 改变文件属性 mysqladmin -u root -p password 'new password' 设置密码 apt-get remove 删除软件 apt-get clean 清理 /etc/rc.d/init.d/mysqld restart php 就配置了session 主要是配置 了apache /etc/init.d/apache2 restart /etc
-
windows下实现定时重启Apache与MySQL方法
采用at命令添加计划任务.有关使用语法可以到window->"开始"->运行"cmd"->执行命令"at /",这样界面中就会显示at命令的语法.下面我们讲解下如何让服务器定时启动apache与mysql: 1.在c:盘根目录新建一个autostartserver.bat文件,然后右键编辑,将文件内容设为如下后保存: 复制代码 代码如下: @ECHO OFF net stop apache2 net start apache2
-
使用脚本实现故障时自动重启Apache
最近不知道为什么博客总是莫名其妙地挂掉, 重启Apache就好了,我也懒得去研究到底是哪里出了问题. 只是每次都需要手工SSH上去重启Apache,有点麻烦. 而且有时候在夜里挂掉,一晚上博客就都不能访问了. 后来终于忍无可忍,写了一段脚本来做这件事,代码如下: 复制代码 代码如下: #!/bin/sh if ( wget --timeout=5 -q --spider http://leonax.net/ ) then echo "ok" else /etc/init.d/httpd
-
linux下通过脚本实现自动重启程序
无论什么程序都不可能完美无缺,理论上,任何程序都有Core Dump的一天,正式运营的程序,尤其是服务器程序,一旦Core Dump,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美梦中,被电话惊醒的惨痛经历,手忙脚乱把服务器重新启动,第二天上班还要被老板一顿狠批.所以,程序发生错误时自动重启变得很重要.这里集中讨论linux实现自动重启程序的方法. linux下实现程序的自动重启有很多方法,这里我们介绍的是通过自己写脚本来实现, 自动重启脚本 假定需要实现重启的程序名为 test ,
-
详解程序意外中断自动重启shell脚本(以Python为例)
我们经常需要在后台运行一些python脚本,来监控系统或者做一些其他事情:但是 由于各种各样的原因,排除python脚本代码的问题,脚本运行过程中会挂掉.为了不天天耗在上面等重启,可以制作shell脚本对程序予以监控,对于意外中断的程序自动重启. 以控制 python自动重启的shell脚本为例: cd Desktop vim run.sh #新建名为run的shell脚本 写入(此处以名为run的Python脚本为例) #!/bin/bash while [ 1 ];do python run
-
自动重启服务的shell脚本代码
复制代码 代码如下: #!/bin/bash if [ ! -f /tmp/down_count ];then echo "0" > /tmp/down_count fi curl -I tomcat-host -o "/tmp/status" >/dev/null 2>&1 code=`awk 'NR==1 {print $2}' /tmp/status` if [ "$[code]" -ge 500 ];then d
-
linux下监视进程 崩溃挂掉后自动重启的shell脚本
================================================= 本文为khler原作,转载必须确保本文完整并完整保留原作者信息及本文原始链接 Author: HeYuanHui E-mail: khler@163.com QQ: 23381103 MSN: pragmac@hotmail.com ================================================= 如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务
-
PHP脚本监控Nginx 502错误并自动重启php-fpm
最近服务器时不时出现Nginx 502 Bad Gateway,如果在电脑旁边还好,要是半夜或者出去了,怎么办? 没关系,写个脚本检测服务状态,发现异常,自动重启. 自动重启脚本: 复制代码 代码如下: <?php $url = 'http://blog.rebill.info'; $cmd = '/usr/local/php/sbin/php-fpm restart'; for($i = 0; $i < 5; $i ++){ $exec = "curl con
-
SpringBoot启动时自动执行sql脚本的方法步骤
需要配置项目下的yml文件: 在文件下加如如下配置: data: classpath:code-generator-data.sql initialization-mode: always spring.datasource.initialization-mode: 初始化模式(springboot2.0),其中有三个值: always为始终执行初始化 embedded只初始化内存数据库(默认值),如h2等 never为不执行初始化 spring.datasource.data: 数据初始化,默
-
详解如何在 Linux 启动时自动执行命令或脚本
我一直很好奇,在启动 Linux 系统并登录的过程中到底发生了什么事情.按下开机键或启动一个虚拟机,你就启动了一系列事件,之后会进入到一个功能完备的系统中,有时,这个过程不到一分钟.当你注销或者关机时,也是这样. 更有意思的是,在系统启动以及用户登录或注销时,还可以让系统执行特定的操作. 本文,我们将探讨一下在 Linux 操作系统中实现这些目标的传统方法. 注意:我们假定使用的是 Bash 作为登录及注销的主 Shell.如果你使用的是其他 Shell,那么有些方法可能会无效.如果有其他的疑问
随机推荐
- Android用于校验集合参数的小封装示例
- Vue中引入样式文件的方法
- jQuery实用函数用法总结
- 基于Jquery easyui 选中特定的tab
- vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
- Wmic 实例应用代码分享
- Android中实现长按修改ListView对象的内容
- perl 采集入库脚本分享
- python中将字典转换成其json字符串
- .NET 资源文件resx、Resources详细说明
- Python set集合类型操作总结
- thinkphp分页集成实例
- 一句话木马入侵EASYNEWS新闻管理系统
- 一些Asp技巧和实用解决方法
- javascript实现的网站访问量统计代码
- XML入门的常见问题(三)
- c++遍历lua table示例
- Microsoft Search 服务无法启动 解决办法.
- javascript解决小数的加减乘除精度丢失的方案
- 获取HTML DOM节点元素的方法的总结