Hoy mismo he tenido un problema que en absoluto es baladí. Me han avisado de que una aplicación de creación propia no funcionaba por un tema de fechas y horas, en concreto, no dejaba reservar un recurso común porque decía que la hora de reserva era anterior a la actual. El problema era que el servidor sobre el que ejecuta dicha aplicación, tenía mal la hora (está virtualizado con Xen y lleva sólo un par de días en marcha).
La solución es utilizar un servidor NTP pero mientras lo configuras y abres la conexión en el cortafuegos corporativo, lo más básico es poder modificar la fecha y hora a mano desde la terminal.
Primero, para ver la hora del sistema usamos la instrucción date:
-bash-3.2# date
Fri Nov 26 16:55:23 CET 2010
Para modificarlo tenemos, con el mismo comando le pasamos el parámetro -s seguido de una cadena que indique: “AAAA/MM/DD HH:MM:SS”. Un ejemplo es el siguiente:
-bash-3.2# date -s “2010/11/26 11:40:00”
Fri Nov 26 11:40:00 CET 2010
Más ejemplos de uso del comando date:
# Cambiar sólo la fecha:
date -d mm/dd/aa
# O lo que es lo mismo:
date –date=mm/dd/aa
# Cambiar sólo la hora:
date -s hh:mm:ss
# O su equivalente
date –set=hh:mm:ss
Sin embargo, todavía hay un detalle más que cuidar. En Linux tenemos dos relojes: el reloj hardware y el reloj del sistema. Con date modificamos el segundo, para modificar el reloj hardware deberemos usar: hwclock.
Lo ideal es que ambos estén sincronizados, por lo haremos lo siguiente (indicando además que se use UTC, tiempo universal coordinado):
hwclock –systohc –utc
Para terminar os comento, que si estáis usando un sistema virtualizado con Xen, no vais a disponer de reloj hardware (no sé si es posible virtualizarlo, pero por defecto, no se incluye), así que esta segunda parte os comentará amablemente un error:
-bash-3.2# hwclock –systohc –utc
Cannot access the Hardware Clock via any known method.
Use the –debug option to see the details of our search for an access method.
-bash-3.2# hwclock –debug –systohc –utc
hwclock from util-linux-2.13-pre7
hwclock: Open of /dev/rtc failed, errno=19: No such device.
No usable clock interface found.
Cannot access the Hardware Clock via any known method.
https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.
Ver comentarios
Qué opinas del comando ntpdate?
Lo tengo como tarea de cron con la sintaxis
ntpdate 0.pool.ntp.org >>/dev/null
para que ejecute cada hora, no hay que enredar con configuraciones. Empecé a usarlo porque nunca recordaba la sintaxis de date :S
Saludos.
Y si no quieres depender de un servicio de hora desde la red, puedes usar tú GPS a través del demonio gpsd.
Por cierto, gracias por la aportación @nordri, un saludo.
@nordri: Curiosamente, justo antes de leer tu comentario, ya había terminado y programado una entrada que saldrá esta noche a portada explicando el uso de NTP, me alegra saber que te interesará :)
Qué razón llevas con la sintaxis de date, aparte de poco intuitiva... es como todo en este mundo, demasiado sajón en las formas de presentación.
ayuuudaaa plissss
Mostrar la hora actual del sistema
4. Mediante formatos traer la fecha del sistema mostrando el texto “Hoy es ...”
5. Mediante formatos traer el mes actual del sistema mostrando el texto “El mes es
… ”
6. Usando los formatos, mostrar en pantalla el texto “Hoy es
día_semana_completo,número_de_día de nombre_mes_completo de año”
7. Mostrar el calendario completo del mes actual
8. Mostrar el calendario completo de marzo de 2012
9. Mostrar el calendario completo del año de su nacimiento
10. Ver el manual referente al comando cal y compararlo con la salida del comando
info cal
Administración de usuarios y rutas de trabajo
11. Mostrar la ruta actual de trabajo
12. ¿Qué función tiene el comando who?
13. Liste los archivos que se encuentran en la ruta /home
14. Que diferencia existe entre la salidas de los comandos ls y ls –la
15. En la ruta /home/ cree una carpeta con el nombre UPTCFESAD
16. Al ubicarse dentro de la carpeta creada en el punto anterior ¿Cuál sería la ruta
actual de trabajo?
17. Dentro de la carpeta UPTCFESAD cree un archivo llamado “Shell” usando el
comando pico de la siguiente manera: pico Shell
18. El contenido del archivo Shell debe tener las siguientes características:
# Este es un archivo de ejecución en Linux
echo Esta es la información de sistema
who
pwd
date
cal
Guardar el archivo
19. Usar el comando ls -la en la ruta actual de trabajo. Cambiar los permisos del
archivo Shell usando el comando chmod 777 Shell y volver a usar el comando
ls –la
20. Ejecutar el comando. /Shell ¿Cuál es la salida del comando?