wget命令
[[email protected] ~]# wget --spider -T 5 -q -t 2 www.jd.com [root@oldboy ~]# echo $? #<==利用返回值确定网站是否正常。 0
curl命令
1、利用curl命令返回值确定网站是否正常
[[email protected] ~]# curl -s -o /dev/null www.xxxx.com [root@zabbix ~]# echo $? 0
2、获取命令执行后的状态码(200表示正常)
[[email protected] ~]# curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null www.baidu.com 200
方法一:wget
#!/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 $* #<==这里的$*就是
测试
[[email protected] ~]# sh checkurl.sh www.jd.com www.jd.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
方法二:curl
[[email protected] ~]# cat checkurl1.sh #!/bin/bash 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 $*
测试
[[email protected] ~]# sh checkurl.sh www.jd.com www.jd.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
原文地址:https://www.cnblogs.com/HByang/p/9256929.html
时间: 2024-10-13 05:27:44