SSe vuoi vedere il valore Time-To-Live (TTL) per un determinato record DNS per A, AAAA e MX. Ecco uno script di shell di esempio che funziona su Linux, Unix e macOS. Devi avere installato il comando bash e dig.
Per trovare DNS TTL su Linux e Unix utilizziamo la seguente sintassi del comando dig:dig {TYPE} {DomainNameHere {NS-AUTHNAME-SERVER-HERE}
Per esempio:
dig A cyberciti.biz @clay.ns.cloudflare.com. dig AAAA cyberciti.biz @clay.ns.cloudflare.com. dig MX cyberciti.biz @clay.ns.cloudflare.com. dig CNAME c.cyberciti.biz @clay.ns.cloudflare.com.
Come anche vedere Time-To-Live (TTL) per un record / dominio DNS?
#!/bin/bash # Usage: # Shell script too see Time-To-Live (TTL) for a DNS record in human readable # format. # # Tested on: # Ubuntu/Debian/macOS with bash shell v5.x # # Note: # dig must be installed on your system this to work. # # Syntax: # /path/to/find-domain-ttl cyberciti.biz # /path/to/find-domain-ttl google.com | more # /path/to/find-domain-ttl cyberciti.biz | grep -i 'AAAA' # ---------------------------------------------------------------------------- # Written by Vivek Gite <https://www.cyberciti.biz/> # (c) 2021 Vivek Gite under GNU GPL v2.0+ # ---------------------------------------------------------------------------- # Last updated: 04/Jun/2021 # ---------------------------------------------------------------------------- set -eu -o pipefail domain="${1:-NULL}" # fail safe i.e. if no $1 passed to the script, die with an error [ "$domain" == "NULL" ] && { echo "Usage: $0 domain-name"; exit 1; } # make sure dig installed else die if type -a dig 2>/dev/null then echo "Error: $0 - dig command not found." exit 2 fi # repeat given char 90 times repeat(){ for i in {1..90}; do echo -n "$1"; done } # get first ns for domain # remove everything except domain.com str="${domain%.*.*}" domain="${domain/$str./}" ns="$(dig +nocmd +noall +answer ns "${domain}" | head -1 | awk '{ print $5}')" # now print ttl for a, aaaa, and mx repeat '-' echo -e "nDomaintttTTLtINtRecordtAnswer" repeat '-' echo for i in a aaaa mx do dig +nocmd +noall +answer +ttlunits "${i}" "${domain}" "@${ns}" done
Utilizzo
Basta eseguirlo come:./find-domain-ttl {domain-name}
./find-domain-ttl cyberciti.biz
Otterrai un bel riassunto per TTL in formato leggibile dall’uomo:
------------------------------------------------------------------------------------------ Domain TTL IN Record Answer ------------------------------------------------------------------------------------------ cyberciti.biz. 5m IN A 104.22.11.214 cyberciti.biz. 5m IN A 104.22.10.214 cyberciti.biz. 5m IN A 172.67.7.239 cyberciti.biz. 5m IN AAAA 2606:4700:10::6816:ad6 cyberciti.biz. 5m IN AAAA 2606:4700:10::6816:bd6 cyberciti.biz. 5m IN AAAA 2606:4700:10::ac43:7ef cyberciti.biz. 5m IN MX 1 aspmx.l.google.com. cyberciti.biz. 5m IN MX 10 aspmx2.googlemail.com. cyberciti.biz. 5m IN MX 10 aspmx3.googlemail.com. cyberciti.biz. 5m IN MX 5 alt1.aspmx.l.google.com. cyberciti.biz. 5m IN MX 5 alt2.aspmx.l.google.com.
Lo script della shell eliminerà automaticamente i sottodomini per trovare NS (Auth Name server) corretti. Per esempio:./find-domain-ttl www.cyberciti.biz
./find-domain-ttl www.google.com
Sessione di esempio:
Riassumendo
Il comando dig è un utile strumento di risoluzione dei problemi DNS per tutti gli sviluppatori e gli amministratori di sistema. Possiamo trovare un host e domini TTL (time to live) per la risoluzione dei problemi. Questo script fornisce l’output in un formato leggibile dall’uomo. È possibile utilizzare TTL per la migrazione DNS o la migrazione del server cloud. Quindi, conoscere TTL è fondamentale in quanto dirà per quanto tempo il client DNS punterà ai vecchi record DNS sul server.
???? Ottieni i tutorial più recenti sugli argomenti SysAdmin, Linux/Unix, Open Source e DevOps tramite: