wget命令
[root@oldboy ~]# wget --spider -T 5 -q -t 2 www.jd.com[root@oldboy ~]# echo $? #<==利用返回值确定网站是否正常。0
curl命令
1、利用curl命令返回值确定网站是否正常
[root@zabbix ~]# curl -s -o /dev/null www.xxxx.com[root@zabbix ~]# echo $?0
2、获取命令执行后的状态码(200表示正常)
[root@zabbix ~]# curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null ?www.baidu.com200
方法一:wget
#!/bin/shfunction 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@oldboy ~]# sh checkurl.sh www.jd.comwww.jd.com is ok[root@oldboy ~]# sh checkurl.sh www.baidu.comwww.baidu.com is ok[root@oldboy ~]# sh checkurl.sh 10.0.0.810.0.0.8 is fail
方法二:curl
[root@oldboy ~]# cat checkurl1.sh #!/bin/bashusage(){ ???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@oldboy ~]# sh checkurl.sh www.jd.comwww.jd.com is ok[root@oldboy ~]# sh checkurl.sh www.baidu.comwww.baidu.com is ok[root@oldboy ~]# sh checkurl.sh 10.0.0.810.0.0.8 is fail
文章来源:https://mp.weixin.qq.com/s?__biz=MzAxOTE5NjQwOA==&mid=2650114763&idx=1&sn=4628f1b5080ae882f5672d39b39518ec&chksm=83cb9a5cb4bc134ab106b0d07a6cbb88ca2ae23d4c6e14325cf4564a0df66e6256dd96c0d557&mpshare=1&scene=23&srcid=0702cR1hmz7WwthkWMTRHVPX#rd
zabbix监控URL是否正常
原文地址:https://www.cnblogs.com/HByang/p/9256929.html