服务器, 未分类, 运营维护

一个高频率的HTTP服务监控Shell Script

Nginx/Apache之类的长期运行,无法保证在遇到各种突发情况进程不会死掉。如果这时候又出门在外,一时间无法操作,那网站岂不是要宕机数个小时?

明显我无法接受这事情。于是一个简简单单的监控HTTP服务的Shell Script就出来了。

#!/bin/bash
#函数restart
restart() {
#重启Nginx
service nginx restart
#重启Apache
service httpd restart
}
#循环的开始
while [ "$loop" = "" ]
do
#延迟五秒
sleep 5
#是否能下载,是则进入下一步循环,否则执行restart
wget -O /dev/null http://你的网站地址 -t 1 || restart
done

真的简简单单。

可见我并没有采用cron功能,毕竟这东西正常情况最低频率只能一分钟了。

restart那个function是http服务不正常后执行的,可以自行增添,删减,替换。sleep后面跟着的是秒数,在这里简单理解成监控频率吧。wget处,-t参数指的是尝试次数,这里我写了一次。

执行方式:

nohup /root/monitor >/dev/null 2>&1 &

其中的/root/monitor指的是该Shell Script所存放的路径。记得要先赋予当前用户对该文件的执行权限。

可以添加到/etc/rc.local里面实现系统启动自动执行:

sed -i "1inohup /root/monitor >/dev/null 2>&1 &" /etc/rc.local

 

终止:

kill %$(jobs | grep monitor | cut -d "[" -f 2 | cut -d "]" -f 1)

其中grep后面跟着的是你Shell Script的文件名。

有了这东西,出门在外,至少能安心一点了。

102 Posts

自信、努力、活出精彩;以前未所见的颜色,绘大千世界!
View all posts

4 thoughts on “一个高频率的HTTP服务监控Shell Script”

      1. 没记错有个插件可以在伪静态后生成静态页,直接在根目录生成首页的index.html,还有文章的HTML。不过如果不用多说之类的社会化评论,就有点麻烦了。我就是不太喜欢那些社会化评论,所以没缓存太长时间。

Leave a reply

Your email address will not be published. Required fields are marked *