Questo tutorial si concentra sulle tecniche per impostare la data e l'ora su Linux utilizzando timedatectl, NTP o date.
In qualità di amministratore di sistema, ti potrebbe essere chiesto di impostare la data di sistema su più server .
Potrebbero essere configurati male o i loro fusi orari potrebbe non essere configurato correttamente.
Di conseguenza, alcuni dei tuoi programmi potrebbero registrare date non valide, impedendo ad esempio di controllare alcuni dei registri del tuo server.
In questo tutorial, vedremo come impostare correttamente la data su Linux in modo che corrisponda al tuo attuale fuso orario geografico.
Per prima cosa, daremo un'occhiata al comando timedatectl con l'opzione systemd-timesync . Successivamente, installeremo chrony o NTP servizi al fine di sincronizzare la nostra data di sistema in modo efficiente.
Infine, utilizzeremo la "data ” comando per impostare staticamente la nostra data di sistema.
Discuteremo anche le differenze tra questi metodi e quale potresti voler utilizzare preferibilmente.
Prerequisiti
Prima di iniziare, dovrai disporre di privilegi sudo sul tuo host per eseguire alcuni dei comandi.
Per esserne sicuro, puoi eseguire il seguente comando
$ sudo -l
User user may run the following commands on localhost:
(ALL) ALL
Se non disponi dei privilegi sudo sul tuo account, segui questo tutorial per ottenere sudo su sistemi basati su Debian o su sistemi basati su Red Hat (CentOS, RHEL)
Imposta la data su Linux utilizzando timedatectl
Che tu stia lavorando su Debian/Ubuntu o su RHEL/CentOS, il modo per impostare la data è lo stesso.
Per impostare la data, devi impostare le informazioni sul fuso orario e attivare (facoltativamente) il protocollo NTP in modo che il tuo sistema si sincronizzi con i server NTP. Se non utilizzi il protocollo NTP (con ntpd o chrony), il tuo sistema utilizzerà il servizio timesync per impostazione predefinita.
Se il tuo fuso orario è configurato male, dovrai modificare le informazioni sul fuso orario.
Per consultare il tuo attuale fuso orario su Linux, puoi eseguire il comando timedatectl.
$ timedatectl
Local time: Wed 2019-10-16 22:26:23 UTC
Universal time: Wed 2019-10-16 22:26:23 UTC
RTC time: Wed 2019-10-16 22:26:24
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
systemd-timesyncd.service active: inactive
RTC in local TZ: no
Diciamo che vuoi modificarlo.
Per elencare i fusi orari su Linux, usa "list-timezones ” opzione con timedatectl .
$ timedatectl list-timezones
Come puoi vedere, i fusi orari vengono presentati utilizzando la seguente sintassi :continente/regione .
Per impostare il tuo fuso orario su New York, puoi cercarlo facilmente utilizzando grep.
$ timedatectl list-timezones | grep York
America/New_York
Per impostare il fuso orario, utilizza "fuso orario comando ".
$ timedatectl set-timezone America/New_York
Per controllare la data di sistema corrente, devi eseguire nuovamente il comando timedatectl.
$ timedatectl
Local time: Wed 2019-10-16 18:35:36 EDT
Universal time: Wed 2019-10-16 22:35:36 UTC
RTC time: Wed 2019-10-16 22:35:36
Time zone: America/New_York (EDT, -0400)
System clock synchronized: no
systemd-timesyncd.service active: inactive
RTC in local TZ: no
Tuttavia, la tua data corrente non è ancora sincronizzata, dovrai attivare il servizio NTP affinché si sincronizzi.
Per impostazione predefinita, se stai lavorando con una distribuzione con systemd, dovresti avere il demone systemd-timesync per impostazione predefinita.
La principale differenza tra systemd-timesync e NTP è che il demone implementa solo lato client e non utilizza meccanismi complessi come NTP.
Per abilitare la sincronizzazione dell'ora , esegui semplicemente questo comando.
$ timedatectl set-ntp true
systemd-timesyncd.service active: true
Se preferisci usare chrony o NTP , le sezioni successive descrivono come impostare NTP e cronico per sincronizzare la data di sistema.
Imposta la data su Linux usando chrony (NTP)
Il modo più accurato per impostare la data su Linux è utilizzare il protocollo ntp .
Come rapido promemoria, il protocollo NTP viene utilizzato per sincronizzare l'ora tra diversi server su una rete.
Utilizzerai i server dell'ora di riferimento che verranno sincronizzati con il tuo server calcolando le latenze per contattare i server di riferimento.
Utilizzando il protocollo NTP, sarai in grado di avere una data molto precisa su Linux .
Per impostare la data, utilizzerai il chrony servizio.
Prima di tutto, assicurati che il servizio timesyncd non sia in esecuzione sul tuo host.
$ sudo systemctl stop systemd-timesyncd.service
Quindi, assicurati che i tuoi pacchetti siano aggiornati sul tuo server.
$ sudo yum update
Quindi, installa il pacchetto chrony utilizzando YUM.
$ sudo yum install chrony [RHEL, CentOS]
$ sudo apt-get install chrony [Debian, Ubuntu]
Nella maggior parte dei casi, il servizio chrony potrebbe essere installato per impostazione predefinita sulla tua distribuzione.
Per abilitare e avviare il servizio chrony, devi eseguire i seguenti comandi.
$ sudo systemctl enable chronyd
$ sudo systemctl start chronyd
Verifica lo stato del tuo servizio con il comando status.
$ sudo systemctl status chronyd
Ora che chrony è installato sul tuo sistema, puoi modificare la data del tuo sistema regolando il fuso orario del tuo sistema.
Nota che non è necessario impostare l'attivazione del protocollo NTP per il comando timedatectl poiché l'avvio di chrony disattiverà automaticamente il demone systemd-timesync per utilizzare NTP.
Se vuoi esserne sicuro, puoi comunque eseguire il seguente comando.
$ timedatectl set-ntp true
Esegui di nuovo il comando timedatectl per assicurarti che tutto sia sincronizzato.
$ timedatectl
Local time: Wed 2019-10-17 18:37:37 EDT
Universal time: Wed 2019-10-16 22:37:37 UTC
RTC time: Wed 2019-10-16 22:37:33
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Nota :invece di avere "servizio NTP", puoi ancora avere l'etichetta "systemd-timesyncd.service attiva" impostata su yes. Non significa che il servizio sia attivo, ma significa che l'host sta usando chrony come metodo per sincronizzarsi.
Inoltre, puoi eseguire "data ” per controllare la data di sistema corrente.
$ date
Thu Oct 17 13:16:10 EDT 2019
Fantastico!
Hai impostato con successo la tua data su Linux (CentOS/RHEL) utilizzando chrony.
Imposta la data su Linux usando ntpd (NTP)
Come descritto in precedenza, l'utilizzo del protocollo NTP è probabilmente il modo più accurato per impostare la data su Ubuntu e Debian.
Prima di tutto, installa il servizio ntp sul tuo host .
Per installare un client NTP, esegui semplicemente il seguente comando.
$ sudo apt-get install ntp [Debian, Ubuntu]
$ sudo yum install ntp [CentOS, RHEL]
Per impostazione predefinita, l'esecuzione di questo comando installerà e attiverà un NTP (Network Time Service ) sul tuo host.
Per assicurarti, ottieni lo stato del servizio NTP.
$ sudo systemctl status ntp
Per impostazione predefinita, l'esecuzione o il riavvio del servizio NTP non attiverà il servizio NTP per il comando timedatectl.
Per attivare la sincronizzazione NTP, specificare "set-ntp opzione ".
$ timedatectl set-ntp true
Ancora una volta, esegui un semplice comando timedatectl per assicurarti che tutto funzioni correttamente.
$ timedatectl
Local time: Wed 2019-10-17 18:37:37 EDT
Universal time: Wed 2019-10-16 22:37:37 UTC
RTC time: Wed 2019-10-16 22:37:33
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
Fantastico !
Hai impostato correttamente la data su Linux utilizzando ntp .
Imposta la data su Linux utilizzando il comando date
Uno dei modi per impostare la data su Linux è usare il comando date.
Uno dei principali difetti di questo approccio è il fatto che non sarai mai così preciso come impostare il fuso orario e sincronizzarlo con timesyncd o chronyd.
Tuttavia, è ancora possibile farlo in questo modo.
Prima di tutto, disattiva la sincronizzazione dell'ora sul tuo host, altrimenti la modifica manuale della data verrà cancellata ogni volta dal servizio di sincronizzazione.
$ sudo timedatectl set-ntp false
Per impostare la data, utilizza "data" con l'opzione "-s".
$ date -s <date>
Ad esempio, utilizzando il formato aaaa-MM-gg , puoi impostare la data in questo modo.
$ date -s '2019-10-17 12:00:00'
Thu Oct 17 12:00:03 EDT 2019
$ date -s '23 October 2019 12:00:00'
Wed Oct 23 12:00:00 EDT 2019
Puoi anche utilizzare scorciatoie per impostare facilmente la data.
Se desideri modificare solo l'anno, puoi utilizzare "anno successivo ” o “l'anno scorso ” scorciatoia.
$ sudo date -s "next year"
Sat Oct 17 12:02:21 EDT 2020
$ sudo date -s "last year"
Thu Oct 17 12:02:43 EDT 2018
Puoi anche scegliere di modificare solo il mese o il giorno con le seguenti scorciatoie.
$ sudo date -s "next day"
Tue Oct 18 00:00:12 EDT 2019
$ sudo date -s "monday"
Mon Oct 21 00:00:00 EDT 2019
$ sudo date -s "next hour"
Wed Oct 21 13:00:19 EDT 2019
Sincronizza il tuo orologio hardware con la data del tuo sistema
Prima di passare alle attività quotidiane di amministrazione del sistema, può essere una buona idea sincronizzare l'orologio hardware con la data del sistema.
In questo modo, ti assicuri che i tuoi due orologi non mostrino date e ore diverse.
Per sincronizzare l'orologio hardware con la data di sistema, utilizza il comando "hwclock" con l'opzione "–systohc".
$ sudo hwclock --systohc
$ sudo hwclock
2019-10-23 13:03:56.466724-0400
Fantastico!
Hai eseguito correttamente la sincronizzazione l'orologio hardware con la data di sistema corrente.
Conclusione
Nel tutorial di oggi, hai imparato come impostare facilmente la data su qualsiasi sistema Linux.
Hai appreso che puoi impostare il fuso orario e lascia che il demone systemd-timesyncd eseguire la sincronizzazione dell'ora.
Se stai cercando tecniche di sincronizzazione dell'ora più precise ed efficienti, hai imparato che puoi utilizzare sia chrony o NTP per raggiungere questo risultato.
Hai anche visto che è possibile impostare la data in modo statico usando il comando date.
Se sei interessato all'amministrazione del sistema Linux , abbiamo molti tutorial sull'argomento.