GNU/Linux >> Linux Esercitazione >  >> Linux

Come impostare data e ora su Linux

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.


Linux
  1. Come impostare il fuso orario e sincronizzare l'ora del server con NTP in Linux

  2. Come impostare o modificare il fuso orario in Linux

  3. Imposta la data, l'ora e il fuso orario su un server Linux

  4. 7 Esempi di comandi della data di Linux per visualizzare e impostare la data e l'ora del sistema

  5. Come impostare Debian per aggiornare automaticamente data e ora?

Come impostare data, ora e fuso orario in RHEL 8

Come impostare data e ora in Rocky e AlmaLinux

Come trovare la data e l'ora di installazione del sistema operativo Linux

Come impostare data e ora su desktop e server Rocky Linux 8

Come impostare e annullare l'impostazione delle variabili di ambiente su Linux

Come modificare data, ora e fuso orario in Linux Mint 20