监控网站URL是否正常最常见的方法莫过于wget和curl命令了,这两个命令都是非常强大的,强大到网友查看帮助都无从选择的地步了,今天呢,老男孩老师正好录制Shell编程实战课程。

wget命令
wget命令的参数非常多,至少也有数十个, 但是运维工作中常用的并不多,老男孩老师把最有用的列表如下。
wget命令 下载网页或文件
--spider 模拟爬虫的行为去访问网站,但不会下载网页
-q, --quiet 安静的访问,禁止输出,类似-o /dev/null功能
-o, --output-file=FILE 记录输出到文件
-T, --timeout=SECONDS 访问网站的超时时间
-t, --tries=NUMBER 当网站异常时重试网站的次数
实际监控方法如下:利用wget命令返回值确定网站是否正常
[root@oldboy ~]# wget --spider -T 5 -q -t 2 www.oldboyedu.com
[root@oldboy ~]# echo $? #
0
curl命令
curl命令的参数比wget的参数还多,但运维中常用的参数也并不多,因此也是列表如下:
curl命令 访问网站url
-I/--head 显示响应头信息
-m/--max-time 访问超时的时间
-o/--output 记录访问信息到文件
-s/--silent 沉默模式访问,就是不输出信息
-w/--write-out 以固定特殊的格式输出,例如:%{http_code},输出状态码
实际监控方法
1、利用curl命令返回值确定网站是否正常
[root@oldboy ~]# curl -s -o /dev/null www.oldboyedu.com
[root@oldboy ~]# echo $?
0
2、获取命令执行后的状态码(200表示正常)
[root@oldboy ~]# curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null www.baidu.com
200
3 开发Shell脚本实现监控指定的URL是否正常
解答:
方法1:
#!/bin/sh
function usage() { #
echo $"usage:$0 url"
exit 1
}
function check_url() { #
wget --spider -q -o /dev/null --tries=1 -T 5 $1
#
#curl -s -o /dev/null $1 #
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@oldboy ~]# sh checkurl.sh www.oldboyedu.com
www.oldboyedu.com is ok
[root@oldboy ~]# sh checkurl.sh www.baidu.com
www.baidu.com is ok
[root@oldboy ~]# sh checkurl.sh 10.0.0.8
10.0.0.8 is fail
方法2:
[root@oldboy ~]# cat checkurl1.sh
#!/bin/bash
##############################################################
# File Name: checkurl.sh
# Version: V1.0
# Author: oldboy
# Organization: www.oldboyedu.com
# 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 ] #
then
echo "$1 is ok"
else
echo "$1 is fail"
fi
}
main(){
if [ $# -ne 1 ]
then
usage
fi
checkurl $1
}
main $*
实践结果
[root@oldboy ~]# sh checkurl.sh www.oldboyedu.com
www.oldboyedu.com is ok
[root@oldboy ~]# sh checkurl.sh www.baidu.com
www.baidu.com is ok
[root@oldboy ~]# sh checkurl.sh 10.0.0.8
10.0.0.8 is fail
如果网友能否读懂本文,相信以后再写监控网站URL的脚本就会很轻松了。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !
