Este tutorial se centra en las técnicas para configurar la fecha y la hora en Linux usando timedatectl, NTP o date.
Como administrador del sistema, se le puede pedir que establezca la fecha del sistema en varios servidores .
Puede que estén mal configurados o sus zonas horarias podría no estar configurado correctamente.
Como consecuencia, algunos de sus programas pueden registrar fechas no válidas, lo que hace que, por ejemplo, no pueda inspeccionar algunos de los registros de su servidor.
En este tutorial, veremos cómo puede configurar correctamente la fecha en Linux para que coincida con su zona horaria geográfica actual.
Primero, vamos a echar un vistazo al comando timedatectl con la opción systemd-timesync . A continuación, instalaremos chrony o NTP servicios para sincronizar la fecha de nuestro sistema de manera eficiente.
Finalmente, vamos a utilizar la “fecha Comando para establecer estáticamente la fecha de nuestro sistema.
También vamos a discutir las diferencias entre esos métodos y cuál es posible que desee utilizar preferentemente.
Requisitos
Antes de comenzar, deberá tener privilegios sudo en su host para ejecutar algunos de los comandos.
Para asegurarse de ello, puede ejecutar el siguiente comando
$ sudo -l
User user may run the following commands on localhost:
(ALL) ALL
Si no tiene privilegios de sudo en su cuenta, siga este tutorial para obtener sudo en sistemas basados en Debian o en sistemas basados en Red Hat (CentOS, RHEL)
Establecer fecha en Linux usando timedatectl
Ya sea que esté trabajando en Debian/Ubuntu o en RHEL/CentOS, la forma de establecer la fecha es la misma.
Para configurar la fecha, debe configurar la información de su zona horaria y (opcionalmente) activar el protocolo NTP para que su sistema se sincronice con los servidores NTP. Si no usa el protocolo NTP (con ntpd o chrony), su sistema usará el servicio de sincronización de tiempo de forma predeterminada.
Si su zona horaria está mal configurada, deberá modificar la información de su zona horaria.
Para consultar su zona horaria actual en Linux, puede ejecutar el comando timedatectl.
$ timedatectl
Local time: Wed 2019-10-16 22:26:23 UTC
Universal time: Wed 2019-10-16 22:26:23 UTC
RTC time: Wed 2019-10-16 22:26:24
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
systemd-timesyncd.service active: inactive
RTC in local TZ: no
Digamos que quieres modificarlo.
Para enumerar las zonas horarias en Linux, utilice la opción "list-timezones opción ” con timedatectl .
$ timedatectl list-timezones
Como puede ver, las zonas horarias se presentan con la siguiente sintaxis:continente/región .
Para establecer su zona horaria en Nueva York, puede buscarla fácilmente usando grep.
$ timedatectl list-timezones | grep York
America/New_York
Para establecer la zona horaria, utilice el botón "set-timezone ” comando.
$ timedatectl set-timezone America/New_York
Para verificar la fecha actual de su sistema, debe ejecutar el comando timedatectl nuevamente.
$ timedatectl
Local time: Wed 2019-10-16 18:35:36 EDT
Universal time: Wed 2019-10-16 22:35:36 UTC
RTC time: Wed 2019-10-16 22:35:36
Time zone: America/New_York (EDT, -0400)
System clock synchronized: no
systemd-timesyncd.service active: inactive
RTC in local TZ: no
Sin embargo, su fecha actual aún no está sincronizada, deberá activar el servicio NTP para que se sincronice.
De forma predeterminada, si está trabajando con una distribución con systemd, debe tener el demonio systemd-timesync por defecto.
La principal diferencia entre systemd-timesync y NTP es que el demonio solo implementa un lado del cliente y no utiliza mecanismos complejos como NTP.
Para habilitar la sincronización de tiempo , simplemente ejecute este comando.
$ timedatectl set-ntp true
systemd-timesyncd.service active: true
Si prefiere usar chrony o NTP , las siguientes secciones describen cómo puede configurar NTP y crony para sincronizar la fecha de su sistema.
Establecer fecha en Linux usando chrony (NTP)
La forma más precisa de establecer la fecha en Linux es usar el protocolo ntp .
Como recordatorio rápido, el protocolo NTP se usa para sincronizar la hora entre diferentes servidores en una red.
Utilizará servidores de tiempo de referencia que se sincronizarán con su propio servidor mediante el cálculo de latencias para ponerse en contacto con los servidores de referencia.
Utilizando el protocolo NTP, podrás tener una fecha muy precisa en Linux .
Para establecer la fecha, vas a utilizar el chrony servicio.
En primer lugar, asegúrese de que el servicio timesyncd no se esté ejecutando en su host.
$ sudo systemctl stop systemd-timesyncd.service
Luego, asegúrese de que sus paquetes estén actualizados en su servidor.
$ sudo yum update
Luego, instale el paquete chrony usando YUM.
$ sudo yum install chrony [RHEL, CentOS]
$ sudo apt-get install chrony [Debian, Ubuntu]
En la mayoría de los casos, el servicio chrony podría estar instalado de forma predeterminada en su distribución.
Para habilitar e iniciar el servicio chrony, debe ejecutar los siguientes comandos.
$ sudo systemctl enable chronyd
$ sudo systemctl start chronyd
Verifique el estado de su servicio con el comando de estado.
$ sudo systemctl status chronyd
Ahora que chrony está instalado en su sistema, puede cambiar la fecha de su sistema ajustando la zona horaria de su sistema.
Tenga en cuenta que no tiene que configurar activar el protocolo NTP para el comando timedatectl ya que iniciar chrony desactivará automáticamente el daemon systemd-timesync para usar NTP.
Si quieres asegurarte de ello, aún puedes ejecutar el siguiente comando.
$ timedatectl set-ntp true
Ejecute el comando timedatectl nuevamente para asegurarse de que todo esté sincronizado.
$ timedatectl
Local time: Wed 2019-10-17 18:37:37 EDT
Universal time: Wed 2019-10-16 22:37:37 UTC
RTC time: Wed 2019-10-16 22:37:33
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Nota :en lugar de tener "servicio NTP", aún puede tener la etiqueta "systemd-timesyncd.service active" establecida en sí. No significa que el servicio esté activo, pero significa que el host está usando chrony como una forma de sincronizar.
Además, puede ejecutar "fecha ” para verificar la fecha actual de su sistema.
$ date
Thu Oct 17 13:16:10 EDT 2019
¡Impresionante!
Has configurado correctamente tu fecha en Linux (CentOS/RHEL) usando chrony.
Establecer fecha en Linux usando ntpd (NTP)
Como se describió anteriormente, usar el protocolo NTP es probablemente la forma más precisa de establecer su fecha en Ubuntu y Debian.
En primer lugar, va a instalar el servicio ntp en su host .
Para instalar un cliente NTP, simplemente ejecute el siguiente comando.
$ sudo apt-get install ntp [Debian, Ubuntu]
$ sudo yum install ntp [CentOS, RHEL]
De forma predeterminada, al ejecutar este comando se instalará y activará un NTP (Servicio horario de red). ) servicio en su host.
Para asegurarlo, obtenga el estado del servicio NTP.
$ sudo systemctl status ntp
De manera predeterminada, ejecutar o reiniciar el servicio NTP no activará el servicio NTP para el comando timedatectl.
Para activar la sincronización NTP, especifique el "set-ntp ” opción.
$ timedatectl set-ntp true
Nuevamente, ejecute un comando simple timedatectl para asegurarse de que todo funcione correctamente.
$ timedatectl
Local time: Wed 2019-10-17 18:37:37 EDT
Universal time: Wed 2019-10-16 22:37:37 UTC
RTC time: Wed 2019-10-16 22:37:33
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
Impresionante !
Has configurado correctamente la fecha en Linux usando ntp .
Establecer la fecha en Linux usando el comando de fecha
Una de las formas de establecer la fecha en Linux es usar el comando de fecha.
Uno de los principales defectos de este enfoque es el hecho de que nunca será tan preciso como configurar la zona horaria y sincronizarla con timesyncd o chronyd.
Sin embargo, todavía es posible hacerlo de esta manera.
En primer lugar, desactive la sincronización de hora en su host; de lo contrario, el servicio de sincronización borrará cada vez que cambie manualmente la fecha.
$ sudo timedatectl set-ntp false
Para establecer la fecha, use "fecha" con la opción "-s".
$ date -s <date>
Por ejemplo, usando el formato aaaa-MM-dd , puede configurar la fecha de esta manera.
$ date -s '2019-10-17 12:00:00'
Thu Oct 17 12:00:03 EDT 2019
$ date -s '23 October 2019 12:00:00'
Wed Oct 23 12:00:00 EDT 2019
También puede utilizar accesos directos para fijar la fecha fácilmente.
Si desea modificar solo el año, puede utilizar el botón “próximo año ” o “el año pasado ” acceso directo.
$ sudo date -s "next year"
Sat Oct 17 12:02:21 EDT 2020
$ sudo date -s "last year"
Thu Oct 17 12:02:43 EDT 2018
También puede elegir modificar solo el mes o el día con los siguientes atajos.
$ sudo date -s "next day"
Tue Oct 18 00:00:12 EDT 2019
$ sudo date -s "monday"
Mon Oct 21 00:00:00 EDT 2019
$ sudo date -s "next hour"
Wed Oct 21 13:00:19 EDT 2019
Sincronice el reloj de su hardware con la fecha de su sistema
Antes de continuar con sus tareas diarias de administración del sistema, puede ser una buena idea sincronizar el reloj de su hardware con la fecha de su sistema.
De esta manera, se asegura de que sus dos relojes no muestren fechas y horas diferentes.
Para sincronizar el reloj de su hardware con la fecha de su sistema, utilice el comando "hwclock" con la opción "–systohc".
$ sudo hwclock --systohc
$ sudo hwclock
2019-10-23 13:03:56.466724-0400
¡Genial!
Has sincronizado correctamente su reloj de hardware con la fecha actual del sistema.
Conclusión
En el tutorial de hoy, aprendió cómo puede configurar fácilmente la fecha en cualquier sistema Linux.
Aprendió que puede establecer la zona horaria y deja que el demonio systemd-timesyncd realizar la sincronización de tiempo.
Si está buscando técnicas de sincronización de tiempo más precisas y eficientes, aprendió que puede usar chrony o NTP para lograr este resultado.
También vio que es posible establecer la fecha de forma estática usando el comando de fecha.
Si está interesado en la administración del sistema Linux , tenemos muchos tutoriales sobre el tema.