【cdn节点状态简单查看】cdn_lookup.sh
#!/bin/bash # # 2014/11/4 action=$1 [ -z $2 ] && hostname="example.com" || hostname=$2 function usage() { cat <<_EOF usage: $0 [hh|vv|t1|t2] hh: 轮训CDN的IP访问指定域名获取header vv: 同上,显示详细内容 t1 [hostname]: 使用当前DNS来分析指定域名 t2 [hostname,ip]: 使用指定的域名和CDN节点IP来分析 _EOF } function cdn_ip() { nslookup ${hostname} |grep Address |grep -v "#53$" |cut -d " " -f2 } function hh() { cdn_ip |xargs -i curl -I -H "Host:${hostname}" http://{}/ >hh.log 2>&1 cat hh.log |grep -B3 -A11 ‘200 OK‘ |diff hh.log - |sed -e ‘1,4d‘ -e ‘s/-//g‘ -e ‘s/^[><]//g‘ } function vv() { cdn_ip |xargs -i curl -o /dev/null -v -H "Host:${hostname}" http://{}/ >vv.log 2>&1 cat vv.log |grep -B10 -A16 ‘200 OK‘ |diff vv.log - |sed -e ‘1d‘ -e ‘s/-//g‘ -e ‘s/^[><]//g‘ } function t1() { curl -o /dev/null -v http://${hostname} } function t2() { [ -z $3 ] && ip=$(cdn_ip |head -n 1) || ip=$3 curl -o /dev/null -v -H "Host:${hostname}" http://${ip}/ >${ip}.log 2>&1 sed -i -e ‘s/* About to/\n+-----------------------------------------------------------------------------------+\n\0/g‘ -e ‘s/< HTTP\/1.1/\0===============================/g‘ ${ip}.log cat ${ip}.log } case ${action} in hh|vv|t1|t2) ${action} ;; *) usage echo "[-] 解析-- ${hostname} --对应的CDN_IP的列表:" cdn_ip ${hostname} echo "" ;; esac
原文:http://nosmoking.blog.51cto.com/3263888/1594727