#! /bin/bash ## 当融云 API 服务出现问题时,执行此脚本输出排查问题所需的必要信息 ## Bash_Name: check_api_service.sh red() { echo -e "\033[31m$*\033[0m\n" } yellow() { echo -e "\033[33m$*\033[0m\n" } white() { echo -e "\033[37m$*\033[0m\n" } base_info() { [[ ! $DOMAIN ]] && DOMAIN="api-cn.ronghub.com" PUBLIC_IP=$(curl http://inet-ip.info 2>/dev/null) DNS_IP=$(cat /etc/resolv.conf | awk '/^nameserver/{print $2}') RESOLV_IP=$(ping -c1 $DOMAIN 2>/dev/null | head -1 | cut -d"(" -f 2 | cut -d")" -f 1) PUBLIC_IP_INFO=$(curl http://freeapi.ipip.net/$PUBLIC_IP 2>/dev/null | tr -d '['| tr -d ']' | awk -F "," '{print $1,$2,$3,$5}') RESOLV_IP_INFO=$(curl http://freeapi.ipip.net/$RESOLV_IP 2>/dev/null | tr -d '['| tr -d ']' | awk -F "," '{print $1,$2,$3,$5}') } api_msg() { base_info yellow "#--------------------------注意事项--------------------------------------#" yellow "1. 如果您配置的是内网 DNS, 有条件的话请向融云客服提供递归查询的外网 DNS 服务器地址\n2. 如果故障发生时间不是现在,请向融云客服备注实际发生时间\n3. 详细使用方法,请使用bash check_api_service.sh -h 命令查看\n谢谢!" white "#------------------------------------------------------------------------#" white "访问的域名:\n$DOMAIN" white "服务器出访 IP:\n$PUBLIC_IP" white "服务器出访 IP 所在城市、所属 ISP:\n$PUBLIC_IP_INFO" white "DNS 服务器 IP:\n$DNS_IP" white "域名解析的 IP:\n$RESOLV_IP" white "域名解析的 IP 所在城市、所属 ISP:\n$RESOLV_IP_INFO" white "当前时间:\n$(date "+%F %R %Z")" white "#------------------------------------------------------------------------#" } api_help() { white "使用方法:bash check_api_service.sh [OPTION]\n\n[OPTION]\n -h | --help\n\t查看帮助\n -o | --old-domain\n\tAPI 域名为旧域名 api.cn.ronghub.com" } api_err() { red "#--------------------------参数错误--------------------------------------#" api_help } case $1 in -h | --help) api_help ;; -o | --old-domain) DOMAIN="api.cn.ronghub.com" api_msg ;; "") api_msg ;; *) api_err ;; esac