监控web服务器是否正常

回复 收藏
写一个监控网站的脚本。发现不正常发邮件告警。每分钟检测一次。
提示: 使用curl命令检测,根据结果判断。

{{{密码回复可见}}}

2016-01-20 09:40 举报
已邀请:
0

guojianrui0512

赞同来自:

{:4_91:}
0

qidi2015

赞同来自:

二级沙发。
0

clq56688

赞同来自:

{:4_91:}
0

渐行渐远

赞同来自:

不知道这样行不行,大家给个建议

#!/bin/bash
web=`netstat -lnp | grep :80`
ser=`netstat -lnp | grep :80|awk -F "/" '{print $2}'`
if [ -z "$web" ];then                    
echo "http is down!!!" |mail -s "http" xxxxxxx@qq.com
fi


crontab -e
1 * * * *    每分钟执行一次
0

loveyouhyf

赞同来自:

curl -I  ?
0

ヾSun

赞同来自:

{:4_91:}
0

369666951

赞同来自:

1
0
看看老师的脚本和我写的有什么不同.
0

wuhen

赞同来自:

看看。。。。。。。。。。
0

阿铭 管理员

赞同来自:

建议远程监控,用第三方机器。 不要用本机监控,如果本机挂了,脚本也没法运行了。
0

Rohero

赞同来自:

{:4_91:}
0

t0ny1988

赞同来自:

本帖最后由 t0ny1988 于 2016-1-20 14:16 编辑

#!/bin/bash
while :
do
curl -I www.xbz.com |sed -n '1'p |grep 200 > ok.txt
jk=`cat ok.txt |wc -l`
if [ $jk != 1 ]
then  curl -I www.xbz.com |sed -n '1'p >> err.txt
   echo "http error" | mail -s "xbz.com" aaa@bbb.com
fi
sleep 60
done

0

sd89456123

赞同来自:

{:4_95:}
0

lyhabc

赞同来自:

过来看看   
0

balich

赞同来自:

学习!
0

inzaghidai

赞同来自:

学习
0

nihao426181

赞同来自:

....
0

faith

赞同来自:

..
0

hlymlv

赞同来自:

学习
0

陈秋明

赞同来自:

看看
0

syk

赞同来自:

学习
0

宇浩

赞同来自:

666
0

Sniper

赞同来自:

看看,学习。。。
0

大漠之烟

赞同来自:

我来试试
0

大漠之烟

赞同来自:

发邮件的就不写了
#/bin/sh
check=`curl -I -s www.aminglinux.com|head -1|grep -w "200"|wc -l`
if [  check -eq 1 ]
then
   echo "nginx is running"
else
   发邮件
fi
0

zyos

赞同来自:

看看
0

sunxueyong

赞同来自:

学习
0

lin19890913

赞同来自:

看看
0

lyhabc

赞同来自:

大漠之烟 发表于 2016-1-25 15:42
发邮件的就不写了
#/bin/sh
check=`curl -I -s www.aminglinux.com|head -1|grep -w "200"|wc -l`


       -s/--silent
              Silent or quiet mode. Don’t show progress meter or error messages.  Makes Curl mute.

       -S/--show-error
              When used with -s it makes curl show an error message if it fails.
0

licengceng

赞同来自:

学习
0

zql254

赞同来自:

学习一下
0

jia3700

赞同来自:

学习
0

magic2018

赞同来自:

M
0

KICAZ629

赞同来自:

{:4_109:}
0

thedawn

赞同来自:

1
0

落涧飞鹰

赞同来自:

看看
0

pipihei

赞同来自:

急需这个学习
0

北辰星

赞同来自:

学习
0

ttly123

赞同来自:

学习学习
0

miaojianbo

赞同来自:

11
0

xteplinux

赞同来自:

{:4_91:}
0

boy461205160

赞同来自:

{:4_91:}
0

biankm_gz

赞同来自:

看下
0

HMOM

赞同来自:

学习
0

lin13750529011

赞同来自:

谢谢
0

phper

赞同来自:

学习学习
0

仙人掌

赞同来自:

curl -I +域名
0

prospect

赞同来自:

while :
do
pos=`curl -s -I http://www.baidu.com  |sed -n 1p | grep 200 |wc -l`
if [ $pos!="1" ];then
    echo "error" |mail -s "xaa" aa.qq.com
fi
sleep 60
done
0

snake

赞同来自:

看看
0

蔡炳森

赞同来自:

#!/bin/bash
> /tmp/http_test.txt
curl www.caibingsen.com -I |grep HTTP > /tmp/http_test.txt
ahttp=`cut -d' ' -f 2 /tmp/http_test.txt`
if [ $ahttp -eq 200 ] ;then
   echo ok
else
  echo "http is down" |mail -s "http" jmucai@126.com
  echo error
fi
~            
0

435664265

赞同来自:

看看
0

435664265

赞同来自:

渐行渐远 发表于 2016-1-20 10:32
不知道这样行不行,大家给个建议

#!/bin/bash

服务启动也不一定能够正常访问吧
0

jinm

赞同来自:

#! /bin/bash
alert='/home/hlymlv/jin/baojin.sh'
url="http://www.qq.com"
#url="http://www.1q2w3e.com"
web_code=`curl -o /dev/null -s -m 5 --connect-timeout 5 -w %{http_code} "$url"`
web_log=/home/hlymlv/jin/shell/web.log
if [ $web_code -ne 200 ]; then
  echo "` date '+%F %T'` 网站故障!!"  | tee -a   $web_log
  /bin/bash $alert
else
echo "`date '+%F %T'` website is OK!" |tee -a $web_log
fi
exit 0
0

cxiaodian

赞同来自:

good
0

乌贼的帽子

赞同来自:

学习
0

大喵喵66

赞同来自:

看看
0

大喵喵66

赞同来自:

sh:
  1. #!/bin/bash
  2. ## filename: detect_web_ok.sh
  3. check_ok(){
  4.         url='http://www.apelearn.com/bbs/forum.php'
  5.         curl -I $url >/tmp/web_ok.txt 2>/dev/null
  6.         grep -iq '200 OK' /tmp/web_ok.txt 2>/dev/null
  7. }

  8. while :; do
  9.         check_ok
  10.         if [ $? -eq 0 ]; then
  11.                 echo "`date "+%F %T"` check web $url, status OK" >>/tmp/web_ok_status.txt
  12.         fi
  13.         sleep 60
  14. done
  15. exit 0



0

小猫咪

赞同来自:

{:5_122:}
0

不怕不怕

赞同来自:

参考
0

zhangzihao

赞同来自:

看看
0

zhangzihao

赞同来自:

$1 是第一个参数的吗
0

Landon

赞同来自:

ad
0

成都-小熊

赞同来自:

学习
0

木树

赞同来自:

看看
0

keluo

赞同来自:

学习
0

linux-小莫

赞同来自:

思路有了
0

linux-小莫

赞同来自:

本帖最后由 linux-小莫 于 2016-4-6 16:33 编辑

#!/bin/bash
url="www.xiaopihai.com"
curl -x localhost:80 $url -I >/tmp/curl.log 2>/dev/null
if grep -q "OK" /tmp/curl.log
then
echo "http is ok">/dev/null
else
echo "http is wrong"|mail -s "http" xxxxxx@qq.com 2>/dev/null
fi

crontab -e
*/1 * * * * /bin/bash checkweb.sh
0

kevin_tao

赞同来自:

这个看curl代码吧
0

xzzlamp

赞同来自:

11
0

beafty

赞同来自:

学习了///
0

rolay8

赞同来自:


  1. #!/bin/bash

  2. code=`curl --connect-timeout 5 -sL -w "%{http_code}" www.baiosddu.com -o /dev/null`

  3. if [ $code -ne 200 ]
  4. then
  5.     echo "The website is down!"|mail -s "notice!" www@qq.com
  6. else
  7.     echo "Website is normal!"
  8. fi
0

xiaoweili

赞同来自:

学习了
0

wangzai

赞同来自:

学习
0

xebszw

赞同来自:

{:5_121:}
0

Linuxpp

赞同来自:

you
0

郭贞

赞同来自:

{:4_91:}
0

乐橙306

赞同来自:

1
0

阿杰

赞同来自:

123
0

地平线

赞同来自:

see
0

timfeng3535

赞同来自:

dddddddddddddddddddddddddd
0

qq895933723

赞同来自:

kankan
0

branttsai

赞同来自:

学习了,谢谢谢谢。
0

jxcia2018

赞同来自:

渐行渐远 发表于 2016-1-20 10:32
不知道这样行不行,大家给个建议

#!/bin/bash

这样写没有报错
不可能啊
0

jxcia2018

赞同来自:

本帖最后由 jxcia 于 2016-4-22 07:20 编辑

#!/bin/bash
##测试web server 是否正常

while :;do
a=`curl -I www.baidu.com |grep "HTTP/1.1"|awk '{print $2}'`
if [ $a -ne 200 ]
then mail -s "server bad" 123@qq.com
fi
sleep 60
done

0

王思彦

赞同来自:

{:4_91:}
0

hzsnone

赞同来自:

学习
0

渐行渐远

赞同来自:

jxcia 发表于 2016-4-22 06:08
#!/bin/bash
##测试web server 是否正常

我执行了你的这句话 curl -I www.baidu.com |grep "HTTP/1.1"|awk '{print $2}' 为什么每次都会出来这条信息
不是应该只有个200才对吗?

  1. % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  2.                                  Dload  Upload   Total   Spent    Left  Speed
  3.   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

0

robb

赞同来自:

看看 这个是什么呢?
0

jxcia2018

赞同来自:

本帖最后由 jxcia 于 2016-4-22 21:38 编辑
渐行渐远 发表于 2016-4-22 16:44
我执行了你的这句话 curl -I www.baidu.com |grep "HTTP/1.1"|awk '{print $2}' 为什么每次都会出来这条 ...

对啊
我发现了这个问题 7期的一个学长也有这样的情况  但是他没给出答案。
我在群里问了 似乎没人知道。



0

jxcia2018

赞同来自:

jxcia 发表于 2016-4-22 21:34
对啊
我发现了这个问题 7期的一个学长也有这样的情况  但是他没给出答案。
我在群里问了 似乎没人知道 ...

有回复了  
curl -I -s  www.baidu.com |  grep HTTP
0

渐行渐远

赞同来自:

jxcia 发表于 2016-4-22 21:34
对啊
我发现了这个问题 7期的一个学长也有这样的情况  但是他没给出答案。
我在群里问了 似乎没人知道 ...

哦,确实很奇怪
0

小璇Linux

赞同来自:

学习
0

自己定义

赞同来自:

学习学习
0

youlianqing

赞同来自:

学习
0

we14578

赞同来自:

看下怎么实现的
0

13663010754

赞同来自:

看看
0

出VU时代

赞同来自:

看下
0

opensky

赞同来自:

把脚本放在专门负责监控的服务器上运行
0

xuliang

赞同来自:

11
0

HJZJIAYOU

赞同来自:

学习

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: