linux shell 网页,linux下利用curl监控网页shell脚本

这是一个利用curl命令检查服务器HTTP状态码的监控脚本示例。脚本读取服务器列表,通过curl命令获取每个服务器的app.htm页面状态码,如果在10秒内未返回200状态码,则发送报警短信。脚本每10分钟由cron任务执行一次,确保及时发现服务器连接问题。
摘要由CSDN通过智能技术生成

curl只返回服务器响应状态,不返回内容,返回200是正常的,其它的不正常,简单的命令如下:

[coomix@localhost ~]$ echo `curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "http://www.coomix.net/index.jsp"`200[coomix@localhost ~]$ echo `curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "http://www.coomix.net/index5.jsp"`404

====================================================

监控机器列表文件:

server.list

server1

server2

server3

建立监控脚本: webstatus.sh

#!/bin/shmonitor_dir=/home/admin/monitor/if [ ! -d $monitor_dir ]; then    mkdir $monitor_dirficd $monitor_dirweb_stat_log=web.statusif [ ! -f $web_stat_log ]; then   touch $web_stat_logfiserver_list_file=server.listif [ ! -f $server_list_file ]; then   echo "`date '+%Y-%m-%d %H:%M:%S'` ERROR:$server_list_file NOT exists!" >>$web_stat_logexit 1fi#total=`wc -l $server_list_file|awk '{print $1}'`for website in `cat $server_list_file`do   url="http://$website/app.htm"   server_status_code=`curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "$url"`   if [ "$server_status_code" = "200" ]; then        echo "`date '+%Y-%m-%d %H:%M:%S'` visit $website status code 200 OK" >>$web_stat_log   else        echo "`date '+%Y-%m-%d %H:%M:%S'` visit $website error!!! server can't connect at 10s or stop response at 10 s, send alerm sms ..." >>$web_stat_log        echo "!app alarm @136xxxxxxxx  server:$website can't connect at 10s or stop response at 10s ..." | nc smsserver port &   fidoneexit 0

主要是利用 curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "$url" 返回状态码是否200,如果10s没有返回200状态码,则发警报

最后让linux 定时执行脚本:

crontab -e

*/10 * * * * /home/admin/app/bin/webstatus.sh

这样每隔10分钟就会执行一次

这个是另外一种脚本写法:

#!/bin/bashwhile read URL  do    echo `date`    result=`curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code}  $URL`    test=`echo $result`    if [[  "$test" = "200"  ]]      then        echo "$URL is ok"    else      echo "test err"/usr/sbin/sendmail -t << EOFFrom:SD-DetectTo:13918888888@139.com,13800000000@139.comSubject:Detected $URL------------------------------${URL} is err!!------------------------------EOF    fi  done < /root/jiankong/httplist.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值