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
timedatectlrichiede 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
timedatectle 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