Gestione dei fusi orari e del tempo: comandi timedatectl
1. Lavorare con il tempo in Linux
Perché è importante configurare correttamente l'orario?
Immagina di cercare di rintracciare un errore nel registro di sistema, ma l'ora nei log non corrisponde a quella reale. Oppure, ancora peggio, il tuo server in un'azienda internazionale mostra orari diversi per diversi utenti. Una configurazione corretta dell'orario non è solo una comodità: è essenziale per il funzionamento dei sistemi, la sincronizzazione dei file, il mantenimento della sicurezza (i certificati SSL dipendono dall'orario) e la coordinazione delle attività lavorative.
In Linux il tempo può essere rappresentato in due forme:
- Tempo di sistema (System Time) — è il tempo che il sistema operativo utilizza per le sue attività.
- Tempo hardware (Hardware Time) — è memorizzato a livello hardware (BIOS/UEFI).
Lavoreremo con il tempo di sistema attraverso lo strumento timedatectl
.
2. Basi del comando timedatectl
timedatectl
— è un'utilità da riga di comando che ti offre un'interfaccia comoda per gestire l'ora. Ti consente di:
- Controllare le impostazioni attuali di ora e fuso orario;
- Impostare l'ora di sistema e quella hardware;
- Configurare i fusi orari;
- Abilitare o disabilitare la sincronizzazione dell'ora con NTP (Network Time Protocol).
Controllo dell'orario attuale
Partiamo dalle basi. Per conoscere l'ora attuale e le impostazioni, esegui il comando:
timedatectl
Esempio di output:
Local time: Tue 2023-10-31 12:34:56 MSK
Universal time: Tue 2023-10-31 09:34:56 UTC
RTC time: Tue 2023-10-31 09:34:56
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Spiegazione dei campi:
- Local time: Ora locale (di sistema).
- Universal time: Ora in formato UTC (tempo universale coordinato).
- RTC time: Ora hardware (a livello di BIOS/UEFI).
- Time zone: Fuso orario attuale.
- System clock synchronized: Se l'orologio è sincronizzato tramite NTP.
- NTP service: Se il servizio di sincronizzazione dell'ora è attivo.
- RTC in local TZ: Se l'ora hardware corrisponde al fuso orario locale.
Impostazione e cambio del fuso orario
A volte, dopo un trasferimento o un cambiamento nei requisiti di un progetto, potresti dover cambiare il fuso orario. Ad esempio, il tuo server era configurato per New York, ma ora serve utenti a Mosca. Trovi i fusi orari nella directory /usr/share/zoneinfo
.
Per visualizzare i fusi orari disponibili, esegui:
timedatectl list-timezones
L'output sarà una lista enorme del seguente tipo:
Africa/Abidjan
America/New_York
Asia/Tokyo
Europe/Moscow
Puoi impostare un nuovo fuso orario con il comando:
sudo timedatectl set-timezone Europe/Moscow
Controlla che il fuso orario sia stato cambiato:
timedatectl
Esercizio pratico
- Trova il fuso orario attuale del tuo server.
- Modifica il fuso orario a UTC.
- Ripristina il fuso orario al tuo locale.
3. Impostazione manuale del tempo
Anche se i server moderni generalmente sincronizzano il tempo tramite NTP, a volte è necessario impostare l'orario manualmente. Questo è utile se il server si trova in una rete isolata senza accesso a internet.
Per prima cosa, puoi controllare il tempo di sistema attuale:
date
Puoi impostare un nuovo orario utilizzando il comando:
sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS"
Ad esempio, per impostare l'orario al 1 novembre 2023, 12:00:
sudo timedatectl set-time "2023-11-01 12:00:00"
Ora controlla di nuovo il risultato:
timedatectl
Impostazione dell'orario hardware
L'orario hardware (conosciuto anche come RTC — Real-Time Clock) viene gestito a livello di BIOS/UEFI. Se l'orario hardware non è sincronizzato con quello di sistema, questo potrebbe causare problemi durante il riavvio. Per sincronizzare, esegui:
sudo hwclock --systohc
Questo comando imposterà l'orario hardware in base all'orario di sistema.
Se hai bisogno di fare il contrario (sincronizzare l'orario di sistema con quello hardware), usa:
sudo hwclock --hctosys
4. Sincronizzazione del tempo tramite NTP
La sincronizzazione del tempo tramite NTP è un modo per mantenere automaticamente l'ora attuale utilizzando server remoti. Nella maggior parte delle distribuzioni Linux moderne, NTP è abilitato per impostazione predefinita.
Verifica della configurazione di NTP
Esegui:
timedatectl status
Se NTP è disabilitato (la riga NTP service mostrerà inactive
), abilitalo:
sudo timedatectl set-ntp true
Per disabilitare NTP, esegui:
sudo timedatectl set-ntp false
Se NTP non funziona, assicurati che i servizi corrispondenti siano attivi. Ad esempio, nei sistemi con systemd-timesyncd
verifica che il servizio sia attivo:
sudo systemctl status systemd-timesyncd
5. Esercizio pratico
Compito
- Imposta il fuso orario del tuo sistema su UTC.
- Imposta manualmente l'ora di sistema su 12:00:00, 1 novembre 2023.
- Abilita la sincronizzazione dell'orario tramite NTP.
Verifica
Dopo aver completato il compito, assicurati che:
- L'orario di sistema corrisponda ai parametri impostati.
- Il fuso orario sia cambiato in UTC.
- Il servizio NTP sia attivo.
6. Errori frequenti e insidie
"RTC in local TZ: no" non corrisponde al fuso orario locale. Molti sistemi preferiscono utilizzare UTC per l'orario hardware, per evitare confusione quando si lavora tra diversi fusi orari. Questo non è un errore, ma piuttosto una preferenza.
Errore di accesso durante la modifica dell'orario. Il comando
timedatectl
richiede privilegi di superutente. Assicurati di utilizzaresudo
.La sincronizzazione NTP non si attiva. Controlla se il servizio NTP è in esecuzione sul tuo server. Ad esempio, per
systemd-timesyncd
, esegui:sudo systemctl start systemd-timesyncd
Perché serve nella pratica?
- Amministrazione di server. Configurare l'orario e i fusi orari è importante per il corretto funzionamento dei log, la sincronizzazione dei dati e la pianificazione delle attività.
- Lavorare con progetti internazionali. Usare UTC come standard aiuta a evitare confusione quando si lavora con clienti da diversi fusi orari.
- Colloqui e certificazioni. Domande su
timedatectl
e sulla gestione dell'orario appaiono negli esami e nei colloqui per posizioni da amministratore di sistema.
Ora sei pronto a gestire il tempo in Linux come gestisci le tue deadline: con sicurezza, precisione e senza sorprese inutili.
GO TO FULL VERSION