批量检查多个网站地址是否正常
企业面试题:批量检查多个网站地址是否正常
要求:
1、使用shell数组方法实现,检测策略尽量模拟用户访问。
2、每10秒钟做一次所有的检测,无法访问的输出报警。
3、待检测的地址如下
http://blog.oldboyedu.com
http://blog.etiantian.org
http://oldboy.blog.51cto.com
http://10.0.0.7
解答:
[root@jenkins scripts]# cat check_url.sh #!/bin/bash ############################################################## # File Name: check_url.sh # Version: V1.0 # Author: gaobo # Organization: 641627690@qq.com # Created Time : 2017-12-05 19:07:45 # Description: ############################################################## #!/bin/bash web_array=( http://blog.oldboyedu.com http://blog.etiantian.org http://oldboy.blog.51cto.com http://10.0.0.7 ) while true do for ((i=0;i<${#web_array[*]};i++)) do wget -T 10 --tries=2 --spider ${web_array[$i]} >/dev/null 2>&1 if [ $? -eq 0 ] then echo "${web_array[$i]} is ok" else echo "${web_array[$i]} is bad" fi sleep 3 done done
第二种吃多了的写法
[root@jenkins scripts]# vim check_url_shuzu.sh #!/bin/bash ############################################################## # File Name: check_url_shuzu.sh # Version: V1.0 # Author: gaobo # Organization: 641627690@qq.com # Created Time : 2017-12-05 19:54:28 # Description: ############################################################## web_sz=( http://www.baidu.com http://www.souhu.com http://www.163.com http://10.0.0.7 ) while true do for ((i=0;i<${#web_sz[*]}; i++)) do echo "${web_sz[$i]} ---" ret_array=($(curl -I --connect-timeout 2 -s ${web_sz[$i]}|head -1)) echo "${web_sz[$i]} ret_val is ${ret_array[1]}" sleep 2 done done