Correzione dell'orologio di sistema CentOS


11

L'uso della funzione time C (numero di secondi dall'epoca) mostra che l'ora sul mio attuale server CentOS 6 è di circa 7 ore in meno rispetto a un altro server con l'ora corretta. Come posso correggere l'orologio di sistema? Non penso che sia deriva perché ho appena installato questo server poche settimane fa, ma potrebbe esserlo. Ho installato ntpd ma non aiuta, forse perché la differenza di tempo è eccessiva.


3
Controlla l'output dal comando TZ=UTC date.
Michael Hampton

1
hai ragione, ntpd non correggerà una tale differenza di tempo. Affinché ntpd funzioni davvero, il tuo sistema deve trovarsi entro un paio di minuti dal time server.
fpmurphy

Sab 30 Nov 09:09:21 UTC 2013 è l'output che ho appena ricevuto
user3180

Sì, mancano sette ore.
Michael Hampton

Risposte:


23

La semplice risposta è "imposta la data manualmente", cosa che devi fare, ma per evitare che ciò accada di nuovo, c'è molto altro da fare.

  1. Assicurarsi che la configurazione del fuso orario del sistema sia in uno stato sano.

    A meno che non vi sia una ragione molto forte per non farlo (come problemi di compatibilità del software), gli orologi dei server dovrebbero sempre essere eseguiti all'ora UTC.

    Se decidi di non utilizzare UTC, scegli un fuso orario eseguendo tzselect. Sullo schermo verrà stampato un fuso orario che verrà utilizzato di seguito. Un esempio sarebbe Europe/Moscow. In caso contrario, utilizzare UTCcome fuso orario di seguito.

    Here is that TZ value again, this time on standard output so that you
    can use the /usr/bin/tzselect command in shell scripts:
    Europe/Moscow
    

    Impostare l'orologio di sistema sul fuso orario desiderato procedendo come segue:

    1. Sostituisci il contenuto /etc/sysconfig/clockcon il seguente:

      ZONE="<timezone>"
      UTC=true
      

      Per esempio:

      ZONE="Europe/Moscow"
      UTC=true
      

      Nota che UTC=truedovrebbe essere impostato qui, anche se non usi UTC come fuso orario. Questo si riferisce all'orologio hardware del server, che dovrebbe sempre essere UTC indipendentemente dal fuso orario del sistema scelto.

    2. Sostituisci il /etc/localtimefile con un link al fuso orario selezionato:

      # ln -snf /usr/share/zoneinfo/<timezone> /etc/localtime
      

      Per esempio:

      # ln -snf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
      # ln -snf /usr/share/zoneinfo/UTC /etc/localtime
      
  2. Impostare l'orologio manualmente sull'ora corrente.

    1. Sincronizza l'orologio di sistema sull'ora corrente:

      # ntpd -g -q
      
    2. Verifica che l'ora appaia corretta:

      # date
      
    3. Sincronizza l'orologio hardware del server con l'orologio di sistema:

      # hwclock -wu
      
  3. Riavvia il computer. Il riavvio è necessario perché tutti i servizi di sistema devono essere riavviati per rilevare l'ora e il fuso orario corretti e l'orologio hardware del server deve essere testato (ad esempio per una batteria difettosa).

    Dopo il riavvio, verificare che il sistema mostri l'ora corretta e che ntpd funzioni correttamente.


Grazie mille Michael. Come posso assicurarmi che sia corretto durante l'installazione? Ricordo di aver selezionato il fuso orario corretto, ma l'ora finisce per essere ancora sbagliata.
user3180

Nel programma di installazione grafico, c'è una casella di controllo che indica "L'orologio di sistema utilizza UTC". Lasciare sempre selezionato, indipendentemente dal fuso orario selezionato.
Michael Hampton

0

il punto è, assicurarsi che il fuso orario sia lo stesso delle caselle che si stanno confrontando

MODIFICARE

se TZ è diverso

/ Etc / localtime

quindi ricordare di tenere conto dell'offset UTC quando si confrontano i tempi di sistema

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.