Linux rdate: controllare un server temporale e impostare l'orologio di sistema

rdate è un comando che recupera l'ora da un server temporale remoto per controllarla o regolare una volta l'orologio di sistema. Tuttavia, il significato delle opzioni differisce per ogni implementazione con lo stesso nome, quindi dovresti controllare prima il manuale del programma installato. Per la sincronizzazione continua dell'ora, è meglio utilizzare un servizio di sincronizzazione temporale come chrony.

Differenza tra rdate e sincronizzazione dell'ora

rdate è uno strumento che invia una richiesta a un server remoto quando viene eseguito. Anche se imposta l'orologio una volta, il comando stesso non continua a funzionare per correggere le deviazioni. Se gestisci servizi sensibili al tempo, come log, attività pianificate o verifica dei certificati, devi controllare lo stato della sincronizzazione continua.

Gli esempi seguenti utilizzano OpenRdate come documentato nel manuale rdate di Ubuntu 24.04. Le stesse opzioni possono avere significati diversi in altre implementazioni, quindi non applicare questi esempi senza modifiche.

Verifica di installazione e implementazione

Su Ubuntu, se puoi accedere al repository dei pacchetti, installalo come segue. Se viene indicato che il pacchetto non è stato trovato, controlla la versione della distribuzione e il repository che stai utilizzando.

sudo apt update
sudo apt install rdate

Dopo l'installazione, apri il manuale per controllare le opzioni del programma effettivo. Il tasto di uscita nel manuale è q.

command -v rdate
man rdate

In OpenRdate, -p significa che restituisce l'ora del server senza modificare l'orologio, e -s significa che non la restituisce. In altre implementazioni di rdate, -s potrebbe significare che imposta l'orologio. Pertanto, non indovinare il comportamento solo dal nome dell'opzione. In particolare, con OpenRdate, eseguire senza -p può tentare di impostare l'orologio.

Controlla solo l'ora del server

Il metodo di comunicazione predefinito di OpenRdate è la porta TCP 37 del protocollo temporale RFC 868. Non si può presumere che un tipico server NTP (Network Time Protocol) fornisca anche RFC 868. L'esempio seguente interroga il server NTP della Physikalisch-Technische Bundesanstalt (PTB) in Germania utilizzando l'opzione -n di OpenRdate e il Simple Network Time Protocol (SNTP). Verifica la politica d'uso del server e l'accessibilità della rete e, se necessario, sostituiscilo con il server NTP specificato dalla tua organizzazione.

rdate -n -p ptbtime1.ptb.de

Quando viene ricevuta una risposta normale, viene visualizzato l'orario remoto e l'orologio del sistema locale non viene modificato. SNTP utilizza la porta UDP 123. Secondo il manuale di OpenRdate, con un server NTP può essere necessaria la correzione dei secondi intercalari. Se la precisione è importante, consulta l’opzione -c nel manuale e le condizioni della sorgente temporale. Se non c'è risposta, controllare l'indirizzo del server, il DNS, il firewall e se il servizio del server è in esecuzione. È necessario prima verificare il protocollo che il server supporta effettivamente, poiché essere chiamato server temporale non significa che supporti tutti i protocolli.

Controllare prima di regolare l'orologio una volta

Se l'orario di sistema cambia improvvisamente in avanti o indietro, può influenzare l'ordine dei log, le attività pianificate, l'autenticazione e i servizi in esecuzione. Per i sistemi in funzione, esaminare l'affidabilità della sorgente temporale e l'impatto delle modifiche, e assicurarsi di scegliere un momento appropriato per le modifiche. Inoltre, verificare la policy operativa corrente per evitare di modificare ripetutamente un orologio già gestito da chrony o altri servizi di sincronizzazione.

In OpenRdate, il seguente comando tenta di impostare l'orologio di sistema sull'orario del server SNTP senza -p. Sono necessari privilegi di amministratore e, prima dell'esecuzione, verificare la risposta del server e l'orario corrente utilizzando il comando di interrogazione sopra indicato. Questo esempio è per OpenRdate.

date
timedatectl
sudo rdate -n ptbtime1.ptb.de
date
timedatectl

Se un comando fallisce, controlla gli errori e non presumere che sia riuscito. date e timedatectl aiutano a verificare l'ora locale e il fuso orario. Solo perché il fuso orario visualizzato sullo schermo è diverso non significa necessariamente che l'orario di riferimento dell'orologio sia errato. Le modifiche dell'ora non possono essere facilmente annullate come una query, quindi invece di reimpostare ciecamente ai valori precedenti, sincronizza con una fonte di tempo affidabile secondo le procedure operative.

Verifica la sincronizzazione continua

Eseguire rdate una sola volta non configura la sincronizzazione continua. In un ambiente systemd, puoi controllare il servizio di sincronizzazione e lo stato dell'orologio con il seguente comando.

timedatectl status

Quello che NTP service mostra come attivo e System clock synchronized mostra come sincronizzato sono stati diversi. Anche se il servizio è in esecuzione, se non può raggiungere un server, potrebbe non essere sincronizzato. Gli elementi visualizzati possono variare a seconda del sistema e della versione.

Nei sistemi che utilizzano chrony, è possibile controllare lo stato e le sorgenti temporali con chronyc tracking e chronyc sources -v. Se non è possibile utilizzare i comandi, controllare l'installazione, lo stato del servizio e le impostazioni della distribuzione. Nella documentazione sulla sincronizzazione del tempo di chrony di Red Hat puoi vedere come verificare le sorgenti e lo stato della sincronizzazione.