正在加载中...

wget命令和curl命令实现阿里云服务器网站URL状态监控

wget命令和curl命令实现阿里云服务器网站URL状态监控

采购阿里云服务器以后,就需要运行维护了。项目运维人员常常需要写代码去监控应用程序的实时状态,监控网站URL的状态是否正常最常见的方法就是wgetcurl命令,这两个命令都是非常强大的,喜欢用哪个就看网友的偏好了哈

1 wget命令实现url状态监控

wget命令的参数非常多,但是运维工作中常用的并不多,最有用的参数介绍如下:

wget命令

下载网页或文件

--spider

模拟爬虫的行为去访问网站,但不会下载网页

-q,    --quiet

安静的访问,禁止输出,类似-o /dev/null功能

-o,    --output-file=FILE

记录输出到文件

-T,    --timeout=SECONDS

访问网站的超时时间

-t,    --tries=NUMBER

当网站异常时重试网站的次数

实际监控命令如下:利用wget命令返回值确定网站是否正常

[root@alicloudhost.cn ~]# wget --spider -T 5 -q -t 2 www.wanweiwang.cn

[root@alicloudhost.cn ~]# echo $? #<==利用返回值确定网站是否正常。

0

2  curl命令实现URL状态监控

curl命令的参数比wget的参数还多,但运维中常用的参数也并不多,curl命令的参数详情如下:

curl命令

访问网站url

-I/--head

显示响应头信息

-m/--max-time <seconds>

访问超时的时间

-o/--output <file>

记录访问信息到文件

-s/--silent

沉默模式访问,就是不输出信息

-w/--write-out <format>

以固定特殊的格式输出,例如:%{http_code},输出状态码

 

实际监控方法如下:

1、利用curl命令返回值确定网站是否正常

[root@alicloudhost.cn ~]# curl -s -o /dev/null www.wanweiwang.cn

[root@alicloudhost.cn ~]# echo $?

0

2、获取命令执行后的状态码(200表示正常)

[root@alicloudhost.cn ~]# curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null  www.aliyun.com

200

开发Shell脚本实现监控指定的URL是否正常

方法1

#!/bin/sh

function usage() {     #<==帮助函数

    echo $"usage:$0 url"

    exit 1

}

function check_url() { #<==检测URL函数。

    wget --spider -q -o /dev/null --tries=1 -T 5 $1

#<==采用wget返回值方法,这里的$1就是函数传参。

    #curl -s -o /dev/null $1 #<==采用curl返回值方法也是可以的。

    if [ $? -eq 0 ]

    then

        echo "$1 is yes."

        exit 0

    else

        echo "$1 is fail."

        exit 1

    fi

}

function main() {   #<==主函数。

     if [ $# -ne 1 ]   #<==如果传入的多个参数,则打印帮助函数,提示用户。

     then

         usage

     fi

     check_url $1     #<==接收函数的传参,即把结尾的$*传到这里。

}

main $*            #<==这里的$*就是把命令行接收的所有参数作为函数参数传给函数内部,常用手法。

运行情况:

[root@alicloudhost.cn ~]# sh checkurl.sh www.wanweiwang.cn

www.wanweiwang.cn is ok

[root@alicloudhost.cn ~]# sh checkurl.sh www.aliyun.com

www.aliyun.com is ok

[root@alicloudhost.cn ~]# sh checkurl.sh 10.0.0.8

10.0.0.8 is fail

方法2

[root@alicloudhost.cn ~]# cat checkurl1.sh

#!/bin/bash

##############################################################

# File Name: checkurl.sh

# Version: V1.0

# Author: alicloudhost.cn

# Organization: www.wanweiwang.cn

# Created Time : 2018-06-07 18:29:19

##############################################################

usage(){

    echo "Usage:$0 url"

    exit 1

}

checkurl(){

    local num=`curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null|grep 200|wc -l`

    if [ $num -eq 1 ] #<==采用获取状态码,并转为数字的方式判断,如果301认为正确也可以加上egrep过滤。

    then

         echo "$1 is ok"

    else

         echo "$1 is fail"

    fi

}

main(){

    if [ $# -ne 1 ]

    then

        usage

    fi

    checkurl $1

}

main $*

运行情况:

[root@alicloudhost.cn ~]# sh checkurl.sh www.wanweiwang.cn

www.wanweiwang.cn is ok

[root@alicloudhost.cn ~]# sh checkurl.sh www.aliyun.com

www.aliyun.com is ok

[root@alicloudhost.cn ~]# sh checkurl.sh 10.0.0.8

10.0.0.8 is fail

使用wget和curl命令监控网站状态的命令就介绍到这里,如果您需要服务器运维服务,可以咨询万维景盛客服哦



返回上一页