Flashcards: 108.1 - Hora Del Sistema
37 tarjetas de repaso. Usa el sistema de repeticion espaciada para memorizar.
P: Un administrador necesita copiar la hora actual del sistema operativo al reloj hardware (RTC). Cual de los siguientes comandos es el correcto?
R: b) hwclock --systohc. hwclock --systohc significa “System TO Hardware Clock”, es decir, copia la hora del reloj del sistema al reloj hardware (RTC). La opcion --hctosys hace lo contrario: copia la hora del hardware al sistema. timedatectl set-rtc y date --set-hwclock no son comandos validos.
P: Que archivo contiene la informacion sobre si el reloj hardware (RTC) esta configurado en UTC o en hora local?
R: c) /etc/adjtime. El archivo /etc/adjtime contiene tres lineas: informacion de deriva (drift), la fecha del ultimo ajuste y en la tercera linea indica UTC o LOCAL segun la configuracion del reloj hardware. /etc/localtime es un enlace simbolico a la zona horaria del sistema. /etc/timezone contiene el nombre de la zona horaria en Debian/Ubuntu. /etc/ntp.conf es la configuracion del demonio NTP.
P: Cual es el puerto y protocolo de transporte que utiliza NTP?
R: b) UDP 123. NTP (Network Time Protocol) utiliza el puerto 123 con el protocolo de transporte UDP. El puerto 514 con UDP corresponde a syslog. NTP usa UDP porque la sincronizacion de tiempo requiere baja latencia y el overhead de una conexion TCP seria contraproducente.
P: En la salida de ntpq -p, que indica el simbolo * junto al nombre de un servidor?
R: c) El servidor esta seleccionado actualmente como fuente de sincronizacion. En la salida de ntpq -p, el simbolo * indica que ese servidor es la fuente de sincronizacion actualmente seleccionada. El simbolo + indica un candidato aceptable, - indica un servidor descartado por el algoritmo, y x indica un falseticker. Estos simbolos son importantes para diagnosticar el estado de la sincronizacion NTP.
P: Cual de las siguientes afirmaciones sobre systemd-timesyncd es correcta?
R: c) Es un cliente SNTP ligero que solo puede actuar como cliente. systemd-timesyncd es un cliente SNTP (Simple NTP) ligero integrado en systemd. Solo puede actuar como cliente, no como servidor NTP. Utiliza SNTP en lugar del protocolo NTP completo, por lo que no calcula drift ni mantiene un driftfile. Su archivo de configuracion es /etc/systemd/timesyncd.conf. Para actuar como servidor NTP se necesita ntpd o chrony.
P: Un administrador ejecuta timedatectl set-ntp true. Que servicio se activa con este comando?
R: c) systemd-timesyncd. El comando timedatectl set-ntp true activa el servicio systemd-timesyncd, no ntpd ni chronyd. Este es un punto importante para el examen LPIC-1. Si se necesita ntpd o chrony, deben instalarse y configurarse por separado. ntpdate es una herramienta deprecada de sincronizacion puntual, no un servicio permanente.
P: Cual es el estrato maximo valido en el sistema de estratos de NTP?
R: b) 15. En el sistema de estratos de NTP, el estrato maximo valido es 15. El estrato 0 corresponde a dispositivos de referencia (relojes atomicos, GPS) que no son accesibles directamente por red. El estrato 1 son servidores conectados directamente a dispositivos de estrato 0. Cada nivel sucesivo se sincroniza con el anterior. El estrato 16 indica “no sincronizado” y se considera invalido.
P: Cual de los siguientes comandos muestra las fuentes de tiempo en chrony, de forma equivalente a ntpq -p en ntpd?
R: b) chronyc sources. chronyc sources muestra las fuentes NTP configuradas y su estado, de forma equivalente a ntpq -p en ntpd. chronyc tracking muestra informacion detallada de sincronizacion del sistema. chronyc activity muestra el numero de fuentes online/offline. chronyc serverstats no es un subcomando valido de chronyc. Se puede usar chronyc sources -v para obtener una explicacion detallada de las columnas.
P: Que comando se utiliza para mostrar la fecha actual del sistema en formato AAAA-MM-DD HH:MM:SS?
R: b) date "+%Y-%m-%d %H:%M:%S". El comando date con la cadena de formato "+%Y-%m-%d %H:%M:%S" produce una salida como 2024-01-15 14:30:45. Los codigos de formato son: %Y (anio 4 digitos), %m (mes 01-12), %d (dia 01-31), %H (hora 00-23), %M (minutos 00-59), %S (segundos 00-59). Las comillas son necesarias porque el formato contiene espacios. La opcion A tiene el orden de fecha incorrecto (dia-mes-anio en lugar de anio-mes-dia).
P: En la terminologia NTP, cual es la diferencia entre un ajuste “step” y un ajuste “slew”?
R: b) Step es un salto abrupto del reloj y slew es un ajuste gradual acelerando o frenando el reloj. Un ajuste “step” cambia el reloj de golpe, lo cual es rapido pero puede causar problemas en aplicaciones sensibles al tiempo (logs desordenados, transacciones duplicadas). Un ajuste “slew” modifica el reloj gradualmente acelerandolo o frenandolo ligeramente, lo cual es mas seguro para aplicaciones en produccion pero tarda mas en sincronizar. NTP usa slew para diferencias pequenas y step para diferencias grandes.
P: Que diferencia hay entre el reloj hardware (RTC) y el reloj del sistema en Linux?
R: b) El reloj hardware es un chip fisico alimentado por pila que funciona con el equipo apagado; el reloj del sistema es mantenido por el kernel en memoria. Linux mantiene dos relojes independientes. El reloj hardware (RTC/CMOS) es un chip fisico en la placa base alimentado por una pila CR2032 que sigue funcionando con el equipo apagado, pero es menos preciso (puede desviarse varios segundos al dia). El reloj del sistema (system clock) es mantenido por el kernel en memoria, se inicializa al arrancar con la hora del RTC, y puede sincronizarse con servidores NTP. Se accede al RTC con hwclock y al reloj del sistema con date o timedatectl.
P: Que opcion de hwclock copia la hora del reloj hardware al reloj del sistema?
R: b) hwclock --hctosys. hwclock --hctosys significa “Hardware Clock TO System”, es decir, copia la hora del reloj hardware (RTC) al reloj del sistema. Lo contrario es hwclock --systohc (System TO Hardware Clock), que copia la hora del sistema al hardware. La opcion --hctosys se usa tipicamente durante el arranque del sistema para inicializar el reloj del sistema a partir del RTC. hwclock --set --date "..." establece directamente una hora en el RTC.
P: Que significa un estrato (stratum) 0 en el sistema jerarquico de NTP?
R: b) Un dispositivo de referencia de tiempo (reloj atomico, GPS) no accesible directamente por red. El estrato 0 corresponde a dispositivos de referencia de tiempo de maxima precision como relojes atomicos, receptores GPS o relojes de radio. Estos dispositivos no son accesibles directamente por red NTP. Los servidores de estrato 1 estan conectados directamente a dispositivos de estrato 0. Cada nivel siguiente se sincroniza con el anterior hasta el estrato 15 (maximo valido). El estrato 16 indica “no sincronizado” y se considera invalido.
P: Que archivo de configuracion utiliza chrony?
R: b) /etc/chrony.conf. Chrony utiliza /etc/chrony.conf como archivo de configuracion principal. En este archivo se definen los servidores NTP (con la directiva server), el archivo de drift (driftfile), la politica de ajuste (makestep) y la sincronizacion del RTC (rtcsync). /etc/ntp.conf es la configuracion de ntpd (el demonio NTP clasico). /etc/systemd/timesyncd.conf es la configuracion de systemd-timesyncd. Chrony esta compuesto por el demonio chronyd y la herramienta de linea de comandos chronyc.
P: Que significa la directiva makestep 1.0 3 en la configuracion de chrony?
R: b) Permitir un salto en el reloj si la diferencia es mayor a 1 segundo, solo en los primeros 3 ajustes. La directiva makestep 1.0 3 en chrony permite un ajuste tipo step (salto abrupto) si la diferencia entre el reloj local y el servidor NTP es mayor a 1.0 segundo, pero solo durante los primeros 3 ajustes despues del arranque. Despues de esos 3 ajustes iniciales, chrony solo realizara ajustes graduales (slew). Esto es util para corregir grandes desviaciones al arrancar sin afectar la estabilidad durante la operacion normal.
P: Que codigo de formato de date muestra los segundos transcurridos desde el epoch Unix (01/01/1970)?
R: b) date +%s. El codigo %s de date muestra el epoch Unix, es decir, el numero de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC. No confundir con %S (mayuscula), que muestra los segundos del reloj (00-59). %u muestra el dia de la semana como numero (1=lunes, 7=domingo). El epoch Unix es muy util en scripts para calcular diferencias de tiempo y para marcas de tiempo independientes de la zona horaria.
P: Que opcion de iburst hace en la configuracion de servidores NTP?
R: b) Envia una rafaga de consultas iniciales para sincronizar mas rapidamente. La opcion iburst en la configuracion de servidores NTP (tanto en /etc/ntp.conf como en /etc/chrony.conf) hace que se envie una rafaga de 4-8 paquetes en intervalos cortos cuando se contacta al servidor por primera vez, en lugar de esperar al intervalo de consulta normal. Esto permite una sincronizacion inicial mucho mas rapida. Ejemplo: server 0.pool.ntp.org iburst. Es una practica recomendada incluirla en la configuracion de todos los servidores NTP.
P: En la salida de ntpq -p, que indica el valor 377 en la columna reach?
R: b) Que las ultimas 8 consultas al servidor fueron exitosas. El campo reach en la salida de ntpq -p es un registro de alcanzabilidad en formato octal. El valor 377 en octal equivale a 11111111 en binario, lo que indica que las ultimas 8 consultas al servidor NTP fueron exitosas. Un valor de 0 indica que no se ha podido contactar al servidor. Un valor de 1 indica que solo la consulta mas reciente fue exitosa. El valor maximo es 377 (todas las ultimas 8 consultas exitosas).
P: Que herramienta reemplazo a ntpdate para sincronizacion puntual del reloj usando chrony?
R: b) chronyd -q. chronyd -q ejecuta chrony en modo de sincronizacion unica: contacta los servidores NTP, ajusta el reloj del sistema y sale inmediatamente. Es el reemplazo moderno de ntpdate. Otras alternativas a ntpdate incluyen ntpd -gq (con ntpd clasico) y timedatectl set-ntp true (con systemd-timesyncd). ntpdate esta deprecado porque no debe ejecutarse mientras otro demonio NTP esta en ejecucion, ya que causa conflictos con el ajuste gradual que realizan ntpd o chronyd.
P: Que termino NTP describe la variacion o inestabilidad del offset entre consultas sucesivas a un servidor?
R: c) Jitter. El jitter es la variacion (inestabilidad) del offset entre consultas sucesivas a un servidor NTP. Un jitter bajo indica una conexion estable con el servidor. El offset es la diferencia de tiempo entre el reloj local y el servidor. El drift es la tendencia del reloj local a desviarse con el tiempo (se registra en el driftfile). El stratum es el nivel jerarquico del servidor en la arquitectura NTP. Menor jitter y menor offset indican una mejor sincronizacion.
P: Escribe el comando para mostrar la fecha y hora actual del reloj hardware (RTC).
R: hwclock -r. El comando hwclock -r (o hwclock --show) lee y muestra la hora actual del reloj hardware (RTC). Tambien se puede usar simplemente hwclock sin opciones. Para sincronizar el RTC con el reloj del sistema: hwclock --systohc. Para sincronizar el reloj del sistema con el RTC: hwclock --hctosys. La informacion sobre si el RTC esta en UTC o hora local se almacena en /etc/adjtime.
P: Escribe el comando para copiar la hora del sistema operativo al reloj hardware.
R: hwclock —systohc. hwclock --systohc (System TO Hardware Clock) copia la hora del reloj del sistema al reloj hardware (RTC). Este comando se ejecuta tipicamente despues de sincronizar el reloj del sistema con NTP, para que el RTC tambien tenga la hora correcta. La operacion inversa es hwclock --hctosys, que copia la hora del hardware al sistema.
P: Escribe el comando para ver las fuentes de tiempo (peers NTP) configuradas en chrony.
R: chronyc sources. chronyc sources muestra las fuentes NTP configuradas en chrony junto con su estado, de forma equivalente a ntpq -p en ntpd clasico. La salida incluye el estrato, el intervalo de consulta (Poll), el registro de alcanzabilidad (Reach), la ultima consulta (LastRx) y la diferencia de tiempo. El simbolo ^* indica la fuente actualmente seleccionada, ^+ una fuente aceptable, ^- una fuente excluida y ^? una fuente sin conectividad.
P: Escribe el comando para activar la sincronizacion NTP usando timedatectl.
R: timedatectl set-ntp true. timedatectl set-ntp true activa la sincronizacion de tiempo con NTP, habilitando generalmente el servicio systemd-timesyncd (cliente SNTP ligero integrado en systemd). Para desactivar la sincronizacion: timedatectl set-ntp false. Es importante notar que timedatectl set-ntp true activa systemd-timesyncd, no ntpd ni chronyd. Si se necesita ntpd o chrony, deben instalarse y configurarse por separado.
P: Escribe el comando de date para mostrar la fecha actual en formato AAAA-MM-DD.
R: date +%Y-%m-%d. El comando date +%Y-%m-%d muestra la fecha actual en formato ISO 8601 (por ejemplo, 2026-06-02). Los codigos de formato son: %Y (anio con 4 digitos), %m (mes con dos digitos, 01-12) y %d (dia del mes con dos digitos, 01-31). Para incluir la hora: date "+%Y-%m-%d %H:%M:%S". Las comillas son necesarias cuando el formato contiene espacios.
P: Que hace el comando *?
R: Servidor seleccionado actualmente (fuente de sincronizacion)
P: Que hace el comando when?
R: Segundos desde ultima consulta
P: Que hace el comando poll?
R: Intervalo de consulta en segundos
P: Que hace el comando reach?
R: Registro de alcanzabilidad (octal) - 377 = ultimas 8 consultas exitosas
P: Un servidor Linux se reinicia tras un corte de electricidad prolongado. Al arrancar, el reloj del sistema marca una hora 3 minutos atrasada respecto a la hora real. Por que ocurre esto y como se corrige de forma permanente?
R: Ocurre porque al arrancar, el kernel inicializa el reloj del sistema a partir del reloj hardware (RTC), que es un chip fisico en la placa base alimentado por una pila CR2032. El RTC es menos preciso que un reloj atomico y puede desviarse varios segundos al dia (drift). Tras un corte prolongado, esa desviacion se acumula. Para corregirlo: 1) Sincronizar el reloj del sistema con NTP (timedatectl set-ntp true o configurar chrony/ntpd), 2) Copiar la hora corregida al RTC con hwclock --systohc. La diferencia clave es que el RTC funciona con el equipo apagado pero es impreciso, mientras que el reloj del sistema (mantenido por el kernel en RAM) puede sincronizarse con NTP pero se pierde al apagar.
P: Escribe el comando date para establecer la fecha y hora del sistema al 25 de diciembre de 2025 a las 14:30:00.
R: date -s '2025-12-25 14:30:00' (o date --set='2025-12-25 14:30:00'). El comando date con la opcion -s o --set permite establecer manualmente la fecha y hora del reloj del sistema. Requiere privilegios de root. Formatos aceptados: date -s "25 Dec 2025 14:30:00", date -s "2025-12-25 14:30:00". Importante: este comando solo cambia el reloj del sistema, no el RTC. Para persistir el cambio tras un reinicio, ejecutar despues hwclock --systohc. Tambien se puede usar el formato MMDDhhmmAAAA.ss: date 122514302025.00.
P: Despues de sincronizar el reloj del sistema con un servidor NTP, un administrador quiere que el reloj hardware (RTC) tambien refleje la hora correcta. Que comando debe ejecutar y por que es importante hacerlo?
R: Debe ejecutar hwclock --systohc (System TO Hardware Clock). Este comando copia la hora actual del reloj del sistema al RTC. Es importante porque al reiniciar, el kernel inicializa el reloj del sistema a partir del RTC. Si el RTC no se actualiza, el sistema arrancara con la hora incorrecta hasta que NTP lo sincronice de nuevo. Opciones clave de hwclock: --hctosys (copiar RTC al sistema), --systohc (copiar sistema al RTC), -r o --show (mostrar hora del RTC), --set --date "2025-12-25 14:30" (establecer hora directamente en el RTC), --utc (interpretar RTC como UTC), --localtime (interpretar RTC como hora local). La configuracion UTC/LOCAL se almacena en /etc/adjtime.
P: Un administrador necesita cambiar la zona horaria de un servidor con systemd a America/Mexico_City. Escribe el comando para listar las zonas horarias disponibles y el comando para establecer la nueva zona.
R: timedatectl list-timezones lista todas las zonas horarias disponibles (se puede filtrar con grep). timedatectl set-timezone America/Mexico_City establece la zona horaria. Este comando crea automaticamente el enlace simbolico /etc/localtime apuntando al archivo de zona correspondiente en /usr/share/zoneinfo/. Otros subcomandos utiles de timedatectl: status (muestra hora, zona, estado NTP), set-time "AAAA-MM-DD HH:MM:SS" (establece fecha/hora manualmente, requiere NTP desactivado), set-ntp true/false (activa/desactiva sincronizacion NTP). Sin argumentos, timedatectl muestra un resumen completo del estado de tiempo del sistema.
P: Un administrador debate si usar NTP completo o SNTP en un servidor de base de datos en produccion que requiere alta precision de tiempo. Cual deberia elegir y por que? Que diferencias tecnicas justifican la decision?
R: Deberia elegir NTP completo (ntpd o chronyd). Las diferencias clave son: NTP completo: usa multiples servidores para calcular la hora mas precisa (algoritmo de interseccion), mantiene un driftfile para compensar la desviacion del reloj local, realiza ajustes graduales (slew), alcanza precision de microsegundos y puede actuar como servidor y cliente. SNTP (Simple NTP): version simplificada del protocolo, solo consulta un servidor a la vez, no calcula drift, no mantiene driftfile, precision de milisegundos, y solo puede actuar como cliente. systemd-timesyncd es un ejemplo de cliente SNTP. Para servidores en produccion con requisitos de precision (bases de datos, logs centralizados, Kerberos), siempre se recomienda NTP completo. SNTP es adecuado para estaciones de trabajo y sistemas donde la precision de milisegundos es suficiente.
P: Completa la tabla: para cada solucion NTP en Linux, indica si puede actuar como servidor NTP, cual es su archivo de configuracion y cual es el comando para ver sus fuentes de tiempo.
| Solucion | Actua como servidor? | Archivo de configuracion | Comando para ver fuentes |
|---|---|---|---|
| ntpd | ? | ? | ? |
| chronyd | ? | ? | ? |
| systemd-timesyncd | ? | ? | ? |
R:
| Solucion | Actua como servidor? | Archivo de configuracion | Comando para ver fuentes |
|---|---|---|---|
| ntpd | Si | /etc/ntp.conf | ntpq -p |
| chronyd | Si | /etc/chrony.conf | chronyc sources |
| systemd-timesyncd | No (solo cliente SNTP) | /etc/systemd/timesyncd.conf | timedatectl timesync-status |
Diferencias adicionales para el examen: ntpd es el demonio NTP clasico, mas lento en sincronizar inicialmente pero muy preciso a largo plazo. chronyd sincroniza mas rapido, mejor para equipos que se suspenden o tienen conexion intermitente (portatiles, VMs), y es el predeterminado en RHEL/CentOS. systemd-timesyncd es el mas ligero, integrado en systemd, solo actua como cliente SNTP, ideal para estaciones de trabajo. Los tres usan el puerto UDP 123.
P: En un examen LPIC-1, te preguntan: “Que archivo almacena la informacion de deriva (drift) del reloj en un sistema con ntpd, y cual es su proposito?” Cual es la respuesta correcta?
R: El archivo es /var/lib/ntp/ntp.drift (o /var/lib/ntp/drift segun la distribucion), definido con la directiva driftfile en /etc/ntp.conf. Contiene un valor numerico (en PPM - partes por millon) que representa la tasa de desviacion del reloj local. NTP usa este valor para compensar proactivamente la tendencia del reloj a adelantarse o atrasarse, logrando mejor precision entre consultas al servidor. En chrony, el equivalente es /var/lib/chrony/drift (configurado con driftfile en /etc/chrony.conf). systemd-timesyncd NO mantiene driftfile porque usa SNTP simplificado. Puntos clave para el examen: el driftfile sobrevive reinicios, se actualiza automaticamente, y si se borra, NTP necesita varias horas para recalcular la tasa de drift.
P: TRAMPA DEL EXAMEN: Un administrador ejecuta timedatectl set-ntp true en un servidor donde necesita chrony como solucion NTP. Que servicio se activa realmente y por que esto podria ser un problema?
R: timedatectl set-ntp true activa systemd-timesyncd, NO chrony ni ntpd. Esta es una trampa clasica del examen LPIC-1. El problema es que systemd-timesyncd es solo un cliente SNTP ligero: no puede actuar como servidor NTP, no mantiene driftfile y tiene menor precision. Ademas, systemd-timesyncd puede entrar en conflicto con chronyd o ntpd si ambos estan activos. Otras trampas frecuentes en el examen 108.1: 1) Confundir --hctosys con --systohc (recordar: la direccion va en el nombre, HCtoSYS = Hardware Clock TO System). 2) Confundir %s (epoch Unix) con %S (segundos 00-59) en el comando date. 3) Creer que ntpdate es la forma moderna de sincronizar (esta deprecado, usar chronyd -q o ntpd -gq). 4) Pensar que el RTC debe estar en hora local (se recomienda UTC, especialmente en dual-boot con Linux).