Connect with us

Linux

Anche lo script di shell vede Time-To-Live (TTL) per un record DNS


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:


Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi