【cdn节点状态简单查看】cdn_lookup.sh#!/bin/bash##2015/6/18#轮训cdn的节点ip,获取statuscode,以及一些header信息。action=$1[-z$2
.
【cdn节点状态简单查看】cdn_lookup.sh
#!/bin/bash# # 2015/6/18# 轮训cdn的节点ip,获取status code,以及一些header信息。action=$1[ -z $2 ] && hostname="my.workec.com" || hostname=$2function usage() { cat <<_EOFusage: $0 [hh|vv|t1|t2] ss: 轮训CDN的IP访问指定域名获取status code 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}function ss() { for ip in `cdn_ip` do echo -n "IP=${ip}, Code=" curl -o /dev/null -s -w %{http_code} -H "Host:${hostname}" http://${ip} echo done}case ${action} in ss|hh|vv|t1|t2) ${action} ;; *) usage echo "[-] 解析-- ${hostname} --对应的CDN_IP的列表:" cdn_ip ${hostname} echo "" ;;esac