Hora del sistema
La hora del sistema, configurada por el reloj del sistema, se utiliza en sistemas Unix para registrar el paso del tiempo. Puede ser configurada por un reloj por hardware, dentro de la placa, o por un servidor de reloj externo.
Prefacio
Reloj por software contra reloj por hardware
El reloj del sistema, provisto por el kernel, es implementado como una simple cuenta del número de ticks que han transcurrido desde el día 1 de enero de 1970 a las 00:00:00 en hora UTC. Esto se llama tiempo Unix.
El reloj por hardware (también conocido como reloj a tiempo real o RTC) es típicamente un componente en la placa base. Ejecuta &mdash sin parar; incluso cuando la fuente de alimentación del ordenador es interrumpida.
Hora UTC contra localtime u hora local
La hora del sistema siempre está configurada a la hora local de la forma determinada por la zona horaria del/la usuario/a, teniendo en cuenta el horario de verano.
La hora del reloj por hardware puede ser modificada para representar la hora local o Tiempo universal coordinado (UTC). UTC es preferido porque es independiente de la zona horaria. Existen excepciones cuando se usa un sistema dual-boot (con dos sistemas operativos o más) y el otro sistema operativo no está configurado para interpretar el reloj por hardware como UTC, como en el caso de WIndows (esto se puede cambiar; vea la sección hacer dual-boot con Windows).
Configuración
Zona horaria
Para registrar la hora adecuadamente, seleccione la zona horaria arpropiada para que el sistema sepa dónde se ubica.
OpenRC
Vea la sección Zona horaria (Manual AMD64).
systemd
systemd viene con el comando timedatectl para gestionar la zona horaria del sistema:
Para ver la zona actual:
user $
timedatectl
Para listar las zonas disponibles:
user $
timedatectl list-timezones
Para cambiar la zona a, por ejemplo, Alemania:
root #
timedatectl set-timezone Europe/Berlin
LC_TIME
Esta variable del entorno define el formato de la fecha y hora. Para más detalles, vea Las Librerías C de GNU
Reloj del sistema
Usualmente la hora del reloj del sistema la configura el reloj por hardware durante el arranque. De manera alternativa, es posible ajustar manualmente el reloj del sistema o usar un servicio de reloj en red.
El comando date puede ser usado para gestionar la hora del reloj del sistema:
Para comprobar la hora actual del reloj por software:
user $
date
Para configurar el reloj del sistema, p. ej. a las 12:34 del 6 de mayo de 2016:
root #
date 050612342016
Servidor de tiempo
Vea los artículos NTP o Chrony para más información acerca del uso de servicios de reloj.
systemd
systemd viene con el comando timedatectl para gestionar la hora del reloj del sistema:
Para mostrar la hora del reloj por software actual:
user $
timedatectl
Para configurar el reloj del sistema:
root #
timedatectl set-time "2012-12-17 12:30:59"
Reloj por hardware
Para tener un reloj por hardware, se deben activar las siguientes opciones del núcelo (o kernel):
Device Drivers --->
[*] Real Time Clock --->
[ ] Set system time from RTC on startup and resume
[ ] Set the RTC time based on NTP synchronization
[*] /sys/class/rtc/rtcN (sysfs)
[*] /proc/driver/rtc (procfs for rtc0)
[*] /dev/rtcN (character devices)
<*> PC-style 'CMOS'
Una vez encendido el sistema, para comprobar la hora del reloj por hardware actual:
root #
hwclock --show
Para ajustar el reloj por hardware al reloj del sistema actual:
root #
hwclock --systohc
Sincronizar el reloj por hardware y el reloj del sistema
Usualmente, el reloj por hardware se utiliza para configurar el reloj del sistema durante el arranque. Esto puede ser realizado por el propio núcleo (o kernel) o por un servicio de arranque (guion o script init). Además, durante el apagado, el núcleo o un servicio pueden configurar el reloj por software y sincronizarlo con el reloj por hardware. Esto ayuda al sistema a tener la hora correcta al arrancar.
Método en el núcleo
En un kernel lo suficientemente moderno (3.9 o más nuevo), Linux puede configurarse para manejar el reloj del sistema automáticamente. Para hacerlo, active (CONFIG_RTC_HCTOSYS) Set system time from RTC on startup and resume y (CONFIG_RTC_SYSTOHC) Set the RTC time based on NTP synchronization en las opciones del núcleo:
Device Drivers --->
[*] Real Time Clock --->
[*] Set system time from RTC on startup and resume
(rtc0) RTC used to set the system time
[*] Set the RTC time based on NTP synchronization
(rtc0) RTC used to synchronize NTP adjustment
[*] /sys/class/rtc/rtcN (sysfs)
[*] /proc/driver/rtc (procfs for rtc0)
[*] /dev/rtcN (character devices)
<*> PC-style 'CMOS'
La opción del kernel Set the RTC time based on NTP synchronization actualmente es soportada por chrony[1]OpenNTPD. OpenNTPD 5.9p1, OpenNTPD, 29 de marzo de 2016. Registrado el 11 de julio de 2017.</ref>.
Para comprobar si el reloj por hardware está actualizado, instale net-misc/adjtimex y ejecute:
root #
adjtimex --print | grep status
El bit 6 del número mostrado no debe estar configurado (0). Puede ver más información en las man pages de hwclock ('modo minuto 11').
OpenRC
Al usar OpenRC, el guion de inicio (init script) hwclock puede configurar el reloj del sistema al arranque y sincronizar el reloj del sistema con el reloj por hardware durante el apagado. El servicio está activado por defecto, y debería ser desactivado en favor del método mencionado anteriormente, que involucra al núcleo. El script hwclock no debe ser ejecutado mientras se use el reloj a tiempo real del núcleo.
root #
rc-update delete hwclock boot
Puede darse el caso de que hwclock arranque como dependencia de otro servicio rc, p. ej. sysklogd. En este caso, el osclock del servicio rc debe ser añadido al mismo nivel de ejecuión que el servicio rc dependiente.
Sin embargo, si se necesita usar el OpenRC, ajuste tanto clock_hctosys como clock_systohc a YES
en /etc/conf.d/hwclock. De manera predeterminada, el servicio se configura según el estándar de tiempo universal coordinado (UTC). Para cambiar a hora local, añada clock="local"
.
/etc/conf.d/hwclock
Adding hardware clock syncclock_hctosys="YES"
clock_systohc="YES"
# clock="local"
Reinicie el servicio hwclock y prepare el guion de inicio del reloj por hardware para que se ejecute durante el arranque del sistema:
root #
rc-service hwclock restart
root #
rc-update add hwclock boot
systemd
systemd puede usarse para configurar el reloj del sistema al arrancar. Use timedatectl para gestionar el reloj por hardware:
Para comprobar la hora del reloj por hardware actual:
user $
timedatectl | grep "RTC time"
Para ajustrar el reloj por hardware igual que el reloj del sistema actual (estándar de tiempo universal coordinado):
root #
timedatectl set-local-rtc 0
Para ajustar el reloj por hardware igual que el reloj del sistema actual (estándar de reloj local):
root #
timedatectl set-local-rtc 1
Resolución de problemas
Dual-boot con Windows
Aquellos sistemas que formen parte de un dual-boot con otro sistema operativo, como pueda ser Windows, suelen tener complicaciones con respecto al reloj por hardware. Para hacer que Windows no vuelva a ajustar el reloj por hardware a la hora local, se puede añadir la siguiente entrada en el registro:
Para los sistemas Windows de 64 bits, abra regedit y navegue a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation. Cree una nueva entrada QWORD llamada RealTimeIsUniversal y configure su valor a 1
. Reinicie el sistema. El reloj ahora debería estar en tiempo UTC (tiempo universal coordinado). Para sistemas Windows de 32 bits, siga las instrucciones de los sistemas de 64 bits pero usando una entrada DWORD en vez de QWORD.
Véase también
- Network Time Protocol — is used to synchronize the system time with other devices over the network.
- Ntp — is a suite of tools utilizing Network Time Protocol. Their purpose is to keep the system clock in time.
- Chrony — a versatile implementation of the Network Time Protocol (NTP).
- OpenNTPD — a lightweight NTP server ported from OpenBSD.
Recursos externos
- https://lifehacker.com/5742148/fix-windows-clock-issues-when-dual-booting-with-os-x - Hacer dual-boot con Microsoft Windows, ajuste RealTimeIsUniversal. También probado en Windows 10.
- http://tldp.org/HOWTO/Clock-2.html - El Clock Mini-HOWTO.
Referencias
- ↑ Comparación de implementaciones de NTP, chrony, 1 de marzo de 2017. Registrado el 11 de julio de 2017.