Corrección del reloj del sistema CentOS

11

El uso de la función de tiempo C (número de segundos desde la época) muestra que el tiempo en mi servidor CentOS 6 actual es de aproximadamente 7 horas en comparación con otro servidor con la hora correcta. ¿Cómo puedo corregir el reloj del sistema? No creo que sea deriva porque acabo de configurar este servidor hace unas semanas, pero podría serlo. Configuré ntpd pero no está ayudando, tal vez porque la diferencia horaria es demasiado.

usuario3180
fuente
3
Verifique el resultado del comando TZ=UTC date.
Michael Hampton
1
tienes razón, ntpd no corregirá tal diferencia horaria. Para que ntpd funcione realmente, su sistema debe estar dentro de un par de minutos del servidor de hora.
fpmurphy
Sáb 30 de noviembre 09:09:21 UTC 2013 es la salida que acabo de recibir
user3180
Sí, eso es siete horas atrás.
Michael Hampton

Respuestas:

23

La respuesta simple es "establecer la fecha manualmente", lo que debe hacer, pero para evitar que esto vuelva a ocurrir, hay más que debe hacer.

  1. Asegúrese de que la configuración de zona horaria del sistema esté en un estado sano.

    A menos que haya una razón muy sólida para no hacerlo (como problemas de compatibilidad de software), los relojes del servidor siempre deben ejecutarse en hora UTC.

    Si decide no usar UTC, ejecute una zona horaria tzselect. Se imprimirá una zona horaria en la pantalla que usará a continuación. Un ejemplo podría ser Europe/Moscow. De lo contrario, use UTCcomo la zona horaria a continuación.

    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
    

    Configure el reloj del sistema en la zona horaria que desee siguiendo estos pasos:

    1. Reemplace el contenido de /etc/sysconfig/clockcon lo siguiente:

      ZONE="<timezone>"
      UTC=true
      

      Por ejemplo:

      ZONE="Europe/Moscow"
      UTC=true
      

      Tenga en cuenta que UTC=truedebe establecerse aquí, incluso si no utiliza UTC como su zona horaria. Esto se refiere al reloj de hardware del servidor, que siempre debe ser UTC, independientemente de la zona horaria del sistema elegido.

    2. Reemplace el /etc/localtimearchivo con un enlace a la zona horaria seleccionada:

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

      Por ejemplo:

      # ln -snf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
      # ln -snf /usr/share/zoneinfo/UTC /etc/localtime
      
  2. Ajuste el reloj manualmente a la hora actual.

    1. Sincronice el reloj del sistema con la hora actual:

      # ntpd -g -q
      
    2. Comprueba que la hora parece correcta:

      # date
      
    3. Sincronice el reloj de hardware del servidor con el reloj del sistema:

      # hwclock -wu
      
  3. Reinicia la computadora. El reinicio es necesario porque todos los servicios del sistema deben reiniciarse para recoger la hora y la zona horaria corregidas, y el reloj del hardware del servidor debe probarse (por ejemplo, por una batería defectuosa).

    Después de reiniciar, verifique que el sistema muestre la hora correcta y que ntpd se esté ejecutando correctamente.

Michael Hampton
fuente
Muchas gracias Michael ¿Cómo me aseguro de que sea correcto durante la configuración? Recuerdo haber seleccionado la zona horaria correcta, pero la hora termina siendo incorrecta.
user3180
En el instalador gráfico, hay una casilla de verificación que dice "El reloj del sistema usa UTC". Siempre deje esto marcado, independientemente de la zona horaria que seleccione.
Michael Hampton
0

el punto es, asegúrese de que la zona horaria sea la misma de las casillas que está comparando

EDITAR

si TZ es diferente

/ etc / localtime

luego recuerde tener en cuenta la compensación UTC al comparar la hora del sistema

nandoP
fuente