33800 Docs

← Retour
#!/bin/bash # =========================================== # Liste tous les enregistrements DNS # Usage: ./list-records.sh [filter] # =========================================== set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/../lib/config.sh" source "$SCRIPT_DIR/../lib/colors.sh" FILTER="$1" print_header "Enregistrements DNS - $O2SWITCH_DOMAIN" # Récupérer la zone DNS RESPONSE=$(curl -s -u "$O2SWITCH_USERNAME:$O2SWITCH_PASSWORD" \ "$O2SWITCH_API_URL/json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzone&domain=$O2SWITCH_DOMAIN") # Vérifier si la réponse est valide if ! echo "$RESPONSE" | grep -q '"status":1'; then log_error "Erreur lors de la récupération des enregistrements DNS" exit 1 fi # Parser et afficher les enregistrements echo "" printf "%-5s %-40s %-8s %-20s %-8s\n" "LINE" "NAME" "TYPE" "VALUE" "TTL" print_separator echo "$RESPONSE" | jq -r '.cpanelresult.data[0].record[] | select(.type == "A" or .type == "CNAME" or .type == "TXT") | [.line, .name, .type, (.address // .cname // (.txtdata | if length > 30 then .[0:30] + "..." else . end) // "N/A"), .ttl] | @tsv' 2>/dev/null | while IFS=$'\t' read -r line name type value ttl; do # Appliquer le filtre si spécifié if [ -n "$FILTER" ]; then if ! echo "$name" | grep -qi "$FILTER"; then continue fi fi # Colorer selon le type case "$type" in A) type_color="${GREEN}$type${NC}" ;; CNAME) type_color="${BLUE}$type${NC}" ;; TXT) type_color="${YELLOW}$type${NC}" ;; *) type_color="$type" ;; esac printf "%-5s %-40s %-8b %-20s %-8s\n" "$line" "$name" "$type_color" "$value" "$ttl" done echo "" log_info "Utilisez './list-records.sh <filtre>' pour filtrer (ex: ./list-records.sh 33800)"