Ricerca nel sito web

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

Controlla ora e data del sistema Linux

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

Controlla il fuso orario del tuo sistema Linux

3. Per visualizzare tutti i fusi orari disponibili, esegui il comando qui sotto:

timedatectl list-timezones

Elencare tutti i fusi orari su un sistema Linux

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.*"

Trova il tuo fuso orario locale su Linux

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

Impostare il fuso orario locale su un sistema Linux

Si raccomanda sempre di utilizzare e impostare l'orario universale coordinato, UTC.

sudo timedatectl set-timezone UTC
timedatectl status

Impostare l'orario del sistema su UTC

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

Imposta data e ora locale in Linux

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'

Configurazione di data e ora nel formato AA:MM:GG e HH:MM:SS

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 su UTC su Linux

Imposta l'orologio hardware sull'ora coordinata universale (UTC):

sudo timedatectl set-local-rtc 0

Imposta l'orologio hardware su UTC

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

Controlla lo stato di sincronizzazione dell'orologio di sistema

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.