Come impostare l'ora, il fuso orario e sincronizzare l'orologio in Linux
In questo articolo, impara come impostare l'ora, il fuso orario e sincronizzare l'orologio di sistema Linux con NTP utilizzando timedatectl, systemd-timesyncd e chrony.
Il comando ‘timedatectl‘ è un'utilità per le distribuzioni basate su RHEL e Debian, ed è parte del sistema e gestore di servizi ‘systemd‘, fungendo da sostituto del vecchio comando date tradizionale utilizzato nelle distribuzioni Linux basate sul demone ‘sysvinit‘.
Il comando timedatectl permette di interrogare e modificare la configurazione dell'orologio di sistema e delle sue impostazioni; è possibile utilizzare questo comando per impostare o modificare la data, l'ora e il fuso orario corrente, oppure per abilitare la sincronizzazione automatica dell'orologio di sistema con un server NTP remoto.
In questo tutorial, ti guiderò attraverso i modi in cui puoi gestire il tempo sul tuo sistema Linux impostando la data, l'ora, il fuso orario e sincronizzando l'ora con NTP dal terminale utilizzando timedatectl, systemd-timesyncd e chrony.
È sempre una buona pratica mantenere l'orario corretto sul tuo server o sistema Linux, e questo può avere i seguenti vantaggi:
- Mantieni il corretto funzionamento dei compiti di sistema poiché la maggior parte dei compiti in Linux è controllata dal tempo.
- Tempo preciso per registrare eventi e altre informazioni sul sistema.
- Sincronizzazione adeguata per sistemi e applicazioni distribuite.
- Essenziale per i protocolli di sicurezza come Kerberos e la convalida dei certificati SSL/TLS.
Come trovare e impostare il fuso orario locale in Linux
1. Per visualizzare l'orario e la data correnti sul tuo sistema, usa il comando timedatectl dalla riga di comando come segue:
timedatectl status
Nel risultato sopra, l'RTC indica l'ora dell'orologio hardware.
2. L'ora sul tuo sistema Linux è sempre gestita tramite il fuso orario impostato sul sistema; per visualizzare il tuo fuso orario attuale, procedi come segue:
timedatectl
OR
timedatectl | grep Time
3. Per visualizzare tutti i fusi orari disponibili, esegui il comando qui sotto:
timedatectl list-timezones
4. Per trovare il fuso orario locale in base alla tua posizione, esegui il comando seguente.
timedatectl list-timezones | egrep -o "Asia/B.*"
timedatectl list-timezones | egrep -o "Europe/L.*"
timedatectl list-timezones | egrep -o "America/N.*"
5. Per impostare il fuso orario locale in Linux, utilizzeremo l'opzione set-timezone come mostrato di seguito.
sudo timedatectl set-timezone "Asia/Kolkata"
timedatectl status
Si raccomanda sempre di utilizzare e impostare l'orario universale coordinato, UTC.
sudo timedatectl set-timezone UTC
timedatectl status
Devi digitare il nome corretto del fuso orario, altrimenti potresti ricevere errori quando cambi il fuso orario. Nell'esempio seguente, il fuso orario «Asia/Kolkata» non è corretto, causando quindi l'errore.
failed to set time zone: invalid timezone
Come impostare data e ora in Linux
Puoi impostare la data e l'ora sul tuo sistema utilizzando il comando timedatectl come segue:
Impostare l'orario in Linux
6. Per impostare solo l'orario, possiamo usare un interruttore set-time insieme al formato dell'orario in HH:MM:SS (Ora, Minuto e Secondi).
sudo timedatectl set-time 12:25:30
timedatectl status
Potresti ricevere il seguente errore quando imposti la data come mostrato sopra:
Failed to set time: Automatic time synchronization is enabled
L'errore si verifica perché la sincronizzazione automatica dell'orologio (NTP) è abilitata, il che impedisce le modifiche manuali dell'orario.
Per risolverlo, prima disabilita NTP, poi imposta l'ora.
sudo timedatectl set-ntp false
sudo timedatectl set-time 12:25:30
timedatectl status
7. Per impostare sia la data che l'ora, usa l'interruttore set-time insieme al formato della data in YYYY-MM-DD (Anno, Mese, Giorno) e dell'ora in HH:MM:SS (Ora, Minuto e Secondi):
sudo timedatectl set-time '2026-01-23 12:25:30'
Come trovare e impostare l'orologio hardware in Linux
8. Per impostare l'orologio hardware su tempo coordinato universale, UTC, utilizza l'opzione set-local-rtc boolean-value come segue:
Per prima cosa verifica se l'orologio hardware è impostato sul fuso orario locale:
timedatectl | grep local
Imposta l'orologio hardware sul fuso orario locale:
sudo timedatectl set-local-rtc 1
Imposta l'orologio hardware sull'ora coordinata universale (UTC):
sudo timedatectl set-local-rtc 0
Nota: Non è consigliato impostare il RTC sull'ora locale, in quanto potrebbe causare problemi con le modifiche dell'ora legale; è quindi meglio mantenere il RTC in UTC.
Sincronizzare l'orologio di sistema Linux con un server NTP remoto
NTP sta per Network Time Protocol ed è un protocollo Internet, utilizzato per sincronizzare l'orologio di sistema tra computer.
L'utilità timedatectl ti consente di sincronizzare automaticamente l'orologio del tuo sistema Linux con un gruppo remoto di server utilizzando NTP.
La maggior parte delle distribuzioni Linux moderne utilizza implementazioni diverse per la sincronizzazione NTP:
- systemd-timesyncd: Un cliente SNTP (Simple NTP) leggero integrato in systemd, adatto alla maggior parte delle configurazioni desktop e di server singoli.
- chrony: Una implementazione completa di NTP che può funzionare sia come client che come server. Gestisce meglio le connessioni di rete intermittenti ed è più precisa.
Usare systemd-timesyncd
Per avviare la sincronizzazione automatica dell'orario con un server NTP remoto, digita il seguente comando nel terminale, che abiliterà e avvierà il servizio systemd-timesyncd.
sudo timedatectl set-ntp true
Per disabilitare la sincronizzazione dell'orario NTP, digita il seguente comando nel terminale.
sudo timedatectl set-ntp false
Per verificare lo stato della sincronizzazione:
timedatectl status
Dovresti vedere “Orologio di sistema sincronizzato: sì” e “Servizio NTP: attivo“.
Utilizzo di chrony (Consigliato per i server)
Se gestisci un server o hai bisogno di una sincronizzazione del tempo più affidabile, chrony è la scelta migliore, ed è particolarmente indicato per:
- Sistemi che non funzionano continuamente (portatili, desktop).
- I server richiedono un'alta precisione.
- Sistemi con connettività di rete intermittente.
- Ambienti clusterizzati in cui la coerenza temporale è fondamentale.
Per prima cosa, installa chrony (se non è già installato):
sudo apt install chrony [On Debian-based systems]
sudo dnf install chrony [On RHEL-based systems]
Nota: L'installazione di chrony disabiliterà automaticamente systemd-timesyncd per evitare conflitti.
Dopo l'installazione, abilita, avvia e controlla lo stato della sincronizzazione:
sudo systemctl enable --now chronyd
timedatectl status
Per utilizzare i tuoi server NTP invece di quelli predefiniti, devi modificare il file di configurazione di Chrony.
sudo nano /etc/chrony/chrony.conf
OR
sudo nano /etc/chrony/sources.d/custom.sources
Aggiungi i tuoi server NTP preferiti (puoi ottenere un elenco di server NTP dal Progetto NTP Pool).
pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst
Riavvia chrony dopo le modifiche:
sudo systemctl restart chronyd
Note Importanti sulla Sincronizzazione NTP
- Non è possibile eseguire contemporaneamente più implementazioni NTP, quindi scegli tra systemd-timesyncd o chrony.
- systemd-timesyncd è un'implementazione solo client e non può fornire l'ora ad altri sistemi.
- chrony può agire sia come client dell'ora sia come server dell'ora per la tua rete locale.
- Per i server di produzione e le infrastrutture critiche, chrony è generalmente consigliato rispetto a systemd-timesyncd.
- NTP richiede che la porta UDP 123 sia aperta per le connessioni in uscita.
Riepilogo
Questi sono esempi molto semplici descritti in questo tutorial e spero che li troverai utili per impostare vari orologi di sistema e fusi orari su Linux.
Per saperne di più su questo strumento, consulta la pagina man di timedatectl.
man timedatectl
Se hai qualcosa da dire su questo articolo, sentiti libero di lasciare un commento per aggiungere ulteriori informazioni.










