timedatectl: controllare la sincronizzazione dell'ora del server Linux e impostare il fuso orario

Ambiente di testFamiglia RHELAlmaLinux 9.8systemd 252 · chrony 4.8account rootDebian 12 account normaleVerificato il 2026-10-29
Comandi per info · impostazioni di sistematimedatectlPosizione/usr/bin/timedatectl

timedatectl è un comando di systemd che mostra e modifica l'orologio di sistema, il fuso orario e lo stato della sincronizzazione dell'ora tramite NTP di un server Linux. Dal controllo della sincronizzazione su un server AlmaLinux 9 che usa chrony e su un server Debian 12 che usa ntpsec è risultato che entrambi i server avevano l'orologio sincronizzato, ma la riga NTP service mostrava active su uno e n/a sull'altro.

Gli output qui sotto sono i risultati dei comandi eseguiti sui due server. Sono stati sostituiti con valori di esempio solo i nomi host, gli indirizzi IP e i numeri di versione dei pacchetti, e i comandi che cambiano l'ora o il fuso orario non sono stati eseguiti sul server in produzione.

1️⃣ Uso di timedatectl e controllo dell'ora del server Linux

Eseguire timedatectl senza opzioni dà lo stesso risultato che aggiungere status. L'ora dell'orologio di sistema e dell'orologio hardware (RTC), il fuso orario e lo stato della sincronizzazione sono riuniti in un'unica schermata. Ecco il risultato sul server Debian 12.

timedatectl
               Local time: Wed 2026-10-28 19:49:57 UTC
           Universal time: Wed 2026-10-28 19:49:57 UTC
                 RTC time: Wed 2026-10-28 19:49:57
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: n/a
          RTC in local TZ: no

Il fuso orario del server Debian 12 è Etc/UTC, quindi Local time e Universal time mostravano la stessa ora. Cosa indica ogni riga e i risultati dei due server sono nella tabella qui sotto.

Riga di outputCosa mostraRisultati dei due server e cosa controllare
Local timeOra attuale dell'orologio di sistema con il fuso orario applicatoCambiando fuso orario, solo questa riga e l'output di date passano al nuovo fuso
Universal timeLa stessa ora espressa in UTCNon cambia con il fuso orario – sul server Debian 12 (Etc/UTC) coincide con Local time
RTC timeOra dell'orologio hardware (RTC)Mostrata senza fuso orario – ora UTC se RTC in local TZ è no
Time zoneFuso orario impostato, la sua sigla e la differenza da UTCPer cambiarlo, usa un nome dall'elenco di list-timezones
System clock synchronizedSe il kernel considera l'orologio sincronizzatoyes su entrambi i server – se è no, controlla prima il server di riferimento con chronyc tracking o ntpq -p
NTP serviceSe è in esecuzione il servizio di sincronizzazione che timedatectl attiva e disattivaactive su AlmaLinux 9 (chrony), n/a su Debian 12 (ntpsec) – n/a significa che timedatectl non conosce il servizio, quindi controllalo con systemctl
RTC in local TZSe l'orologio hardware è tenuto sull'ora locale (no = UTC)no su entrambi i server – il comando per passare da yes a UTC è set-local-rtc 0

Linux ha due orologi. L'orologio di sistema è quello che il kernel mantiene dopo l'avvio, e l'orologio hardware è l'orologio della scheda madre che conserva l'ora anche a server spento.

L'orologio hardware si legge direttamente con hwclock. hwclock mostra l'ora convertita nel fuso orario attuale. Sul server AlmaLinux, la lettura con TZ=UTC davanti al comando ha restituito un'ora UTC che termina con +00:00.

TZ=UTC hwclock --show
2026-10-28 19:53:33.006788+00:00

Sul server Debian 12, a cui ci si era collegati con un account normale, lo stesso comando è terminato senza poter accedere all'orologio hardware.

/usr/sbin/hwclock --show
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.

La riga RTC in local TZ è la stessa impostazione della terza riga del file /etc/adjtime. Sul server AlmaLinux la terza riga era UTC, cioè l'orologio hardware è tenuto in UTC.

cat /etc/adjtime
0.0 0 0.0
0
UTC

Per leggere i valori in uno script, usa show invece di status. Sul server Debian 12 mostra le stesse informazioni nella forma nome=valore, una per riga.

timedatectl show
Timezone=Etc/UTC
LocalRTC=no
CanNTP=no
NTP=no
NTPSynchronized=yes
TimeUSec=Wed 2026-10-28 19:49:57 UTC
RTCTimeUSec=Wed 2026-10-28 19:49:57 UTC

Scegli le proprietà con -p e aggiungi --value per tenere solo i valori, senza i nomi. Usa questa forma per estrarre solo il nome del fuso orario.

timedatectl show -p Timezone --value
Etc/UTC

🔲 Simulatore del comando timedatectl

Nel simulatore qui sotto puoi digitare tu stesso i comandi per vedere l'ora, elencare i fusi orari, cambiare il fuso orario e controllare la sincronizzazione con chronyc.

Simulatore del comando timedatectlsystemd 252 · chrony 4.8
[root@server work]#
Funziona solo nel browser. Un fuso orario cambiato torna all'inizio (Etc/UTC) quando ricarichi la pagina, e ↑↓ richiama i comandi precedenti.

2️⃣ Stato della sincronizzazione dell'ora del server Linux

La riga System clock synchronized indica se il kernel considera l'orologio sincronizzato, e la riga NTP service indica se è in esecuzione il servizio di sincronizzazione che timedatectl può attivare e disattivare. Con show gli stessi valori compaiono come NTPSynchronized e NTP, e CanNTP indica se esiste un servizio di sincronizzazione che si può attivare e disattivare.

Sul server AlmaLinux 9 con chrony, tutti e tre i valori erano yes.

timedatectl show -p CanNTP -p NTP -p NTPSynchronized
CanNTP=yes
NTP=yes
NTPSynchronized=yes

Sul server Debian 12, che regola l'ora con ntpsec, solo NTPSynchronized era yes, mentre CanNTP e NTP erano no. Per questo la riga NTP service risultava n/a nella schermata status di questo server.

timedatectl show -p CanNTP -p NTP -p NTPSynchronized
CanNTP=no
NTP=no
NTPSynchronized=yes

Il servizio ntpsec in sé era in esecuzione.

systemctl is-active ntpsec
active

Gli unici servizi di sincronizzazione che timedatectl conosce sono quelli scritti nei file di elenco della cartella ntp-units.d, e i pacchetti della distribuzione mettono questi file in /usr/lib/systemd/ntp-units.d/ (secondo il manuale ufficiale). Il server AlmaLinux 9 aveva un file di elenco installato dal pacchetto chrony, con una sola riga: chronyd.service.

cat /usr/lib/systemd/ntp-units.d/50-chronyd.list
chronyd.service
rpm -qf /usr/lib/systemd/ntp-units.d/50-chronyd.list
chrony-4.8-10.el9.x86_64

Il server Debian 12 non aveva questa cartella. Poiché ntpsec non è nell'elenco, timedatectl sapeva che l'orologio era sincronizzato, ma non poteva attivare né disattivare quel servizio.

ls /usr/lib/systemd/ntp-units.d/
ls: cannot access '/usr/lib/systemd/ntp-units.d/': No such file or directory
🖥️ timedatectlstatus, show, set-ntp
ntp-units.d/*.listElenco dei servizi di sincronizzazione che timedatectl attiva e disattiva
chronyd.serviceNell'elenco → NTP service: active
ntpsec.serviceFuori dall'elenco → NTP service: n/a

3️⃣ Controllare la sincronizzazione dell'ora con chronyc

Su un server con chrony, il server orario che l'orologio segue si controlla con chronyc. sources mostra i server orari che chronyd interroga e il loro stato, uno per riga.

chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^- 192.0.2.10                    2  10   377   943   +272us[ +275us] +/-   55ms
^- ntp1.example.com              2  10   377    80    -28us[  -32us] +/- 3655us
^- 198.51.100.33                 3  10   257   384   -151us[ -156us] +/-   97ms
^- 198.51.100.82                 3  10   177   532   +157us[ +149us] +/-   45ms
^* 192.0.2.123                   3   4   377     2    -21us[  -23us] +/-  312us

Il ^ iniziale indica un server orario, un * come secondo carattere indica il server di riferimento che l'orologio segue ora, e - indica un candidato escluso dal calcolo. Poll 4 sul server di riferimento significa un'interrogazione ogni 16 secondi (2 alla quarta), e Reach 377 indica che sono arrivate tutte le ultime otto risposte.

tracking mostra di quanto l'orologio di sistema si discosta dall'ora del server di riferimento.

chronyc tracking
Reference ID    : C000027B (192.0.2.123)
Stratum         : 4
Ref time (UTC)  : Wed Oct 28 19:50:21 2026
System time     : 0.000002422 seconds slow of NTP time
Last offset     : -0.000002098 seconds
RMS offset      : 0.000000981 seconds
Frequency       : 6.348 ppm slow
Residual freq   : -0.001 ppm
Skew            : 0.017 ppm
Root delay      : 0.000300815 seconds
Root dispersion : 0.000150780 seconds
Update interval : 16.3 seconds
Leap status     : Normal

La riga System time mostra che l'orologio di sistema era indietro di 0.000002422 secondi rispetto all'ora NTP, e Leap status era Normal. Un Update interval di 16.3 secondi è l'intervallo tra gli ultimi due aggiornamenti dell'orologio.

Quali server interrogare lo stabiliscono le righe pool e server in /etc/chrony.conf. Lasciando solo le righe di impostazione, senza commenti e righe vuote, si ottiene quanto segue.

grep -v "^#" /etc/chrony.conf | grep -v "^$"
pool 2.almalinux.pool.ntp.org iburst
sourcedir /run/chrony-dhcp
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
ntsdumpdir /var/lib/chrony
leapsectz right/UTC
logdir /var/log/chrony
server 192.0.2.123 prefer iburst minpoll 4 maxpoll 4

La riga pool interroga il pool NTP di AlmaLinux, e prefer nell'ultima riga server è un'opzione che fa scegliere a chronyd questo server prima degli altri. makestep 1.0 3 è un'impostazione che, nei primi tre aggiornamenti dopo l'avvio di chronyd, corregge in un colpo un orologio sfasato di oltre 1 secondo e poi lo regola poco a poco facendolo andare leggermente più veloce o più lento. rtcsync fa copiare al kernel l'ora di sistema nell'orologio hardware ogni 11 minuti (secondo la documentazione ufficiale).

Sul server Debian 12 con ntpsec, le stesse informazioni sono state controllate con ntpq -p. Il * iniziale è il server di riferimento, e tutti e tre i server venivano interrogati ogni 1024 secondi.

ntpq -p
     remote           refid      st t when poll reach   delay   offset   jitter
===============================================================================
+203.0.113.43    198.51.100.28    2 u  835 1024  377 184.6893  -0.1018   1.4879
+203.0.113.44    198.51.100.27    2 u  547 1024  377 183.0827  -2.4227   4.0957
*ntp2.example.co 198.51.100.40    2 u  440 1024  377 177.4670  -0.5814   1.7070

4️⃣ Cambiare il fuso orario con timedatectl

I nomi dei fusi orari si vedono con list-timezones. La maggior parte ha la forma Continente/Città, uno per riga, ed entrambi i server ne avevano 598.

timedatectl list-timezones | head -5
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
timedatectl list-timezones | wc -l
598

L'elenco è lungo, quindi filtralo con grep quando cerchi un nome.

timedatectl list-timezones | grep -i new_york
America/New_York

Il fuso orario si cambia scrivendo un nome dell'elenco dopo set-timezone. Questo comando sostituisce il link /etc/localtime con il nuovo file del fuso orario, quindi da un account normale va eseguito con sudo.

sudo timedatectl set-timezone America/New_York

Controlla con ls -l se /etc/localtime è un link a un file di fuso orario.

ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Sep 24 12:52 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

Un nome non presente nell'elenco è stato rifiutato subito, prima di cambiare il fuso orario.

timedatectl set-timezone Mars/Olympus
Failed to set time zone: Invalid or not installed time zone 'Mars/Olympus'

Cambiare fuso orario non modifica l'ora dell'orologio di sistema; solo Local time e l'output del comando date compaiono nel nuovo fuso. Su un server con l'orologio hardware in UTC, anche l'orologio hardware non cambia (secondo il manuale ufficiale).

5️⃣ Attivare NTP e impostare l'ora a mano con timedatectl

set-ntp true avvia il primo servizio dell'elenco dei servizi di sincronizzazione e lo abilita all'avvio. false ferma i servizi dell'elenco e li disabilita all'avvio (secondo il manuale ufficiale).

sudo timedatectl set-ntp true

Sul server Debian 12 senza file di elenco, il comando è terminato con NTP not supported persino con false, il valore attuale. Un servizio non presente nell'elenco, come ntpsec, si avvia e si ferma direttamente con systemctl.

timedatectl set-ntp false
Failed to set ntp: NTP not supported

Per impostare l'ora a mano, scrivi la data e l'ora dopo set-time. Questo comando regola l'orologio hardware insieme all'orologio di sistema.

sudo timedatectl set-time '2026-10-28 20:00:00'

Sul server Debian 12, l'inserimento di un valore nel formato sbagliato è terminato con un errore senza cambiare l'ora.

timedatectl set-time bad
Failed to parse time specification 'bad': Invalid argument

Su un server con chrony, per correggere in un colpo un orologio molto sfasato si usa chronyc makestep.

sudo chronyc makestep

makestep scarta la differenza residua che si stava correggendo poco a poco e fa saltare subito l'orologio di sistema di quella quantità. La documentazione ufficiale avverte che un cambio improvviso dell'ora può influire su alcuni programmi, quindi usalo solo quando l'orologio è troppo sfasato per correggerlo lentamente.

🔢 FAQ & contenuti consigliati

I servizi NTP come chrony e ntpsec tengono l'orologio sempre sincronizzato, quindi non c'è quasi mai bisogno di eseguire rdate con cron. Sul server AlmaLinux 9 controllato rdate non era installato e non compariva nemmeno nell'elenco dei pacchetti installabili. Il repository del server Debian 12 aveva il pacchetto rdate 1.11, ma non era installato.

timesync-status è un comando solo per systemd-timesyncd. Sia sul server AlmaLinux 9 con chrony sia sul server Debian 12 con ntpsec è terminato con l'errore Failed to query server. Su questi server, controlla lo stato della sincronizzazione con chronyc tracking o ntpq -p.

Il manuale ufficiale spiega che tenere l'orologio hardware sull'ora locale può causare problemi quando cambia il fuso orario o scatta l'ora legale. Per questo consiglia di lasciarlo in UTC quando possibile, e il comando per passare a UTC è sudo timedatectl set-local-rtc 0. Entrambi i server controllati erano su no (UTC).

ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dimostra di essere umano: 10   +   7   =