¿Cómo cambiar la fecha y hora del servidor de ubuntu a través de la línea de comando?


40

La fecha y hora actuales del servidor Ubuntu es diferente de la fecha y hora de la zona horaria. He intentado usar:

sudo date "30 Sep 2015 4:43:42"

para cambiarlo pero no cambió la fecha y la hora, solo imprimí en el terminal la fecha y la hora que cambié, pero cuando ejecuté:

sudo hwclock --show

La fecha y la hora siguen siendo las antiguas.

¿Cuál es la forma correcta de cambiar la fecha y la hora de Ubuntu Server?


¿realmente escribiste "sudo date newdate" - la palabra "newdate"?
Wolfgang

1
No He editado mi pregunta. Escribí "30 de septiembre de 2015 4:43:42"
Priska Aprilia

Respuestas:


68

Puede configurar la fecha del sistema con este comando:

sudo date --set="2015-09-30 10:05:59.990"

Luego, cuando se usa date, se debe mostrar correctamente.

Ahora también debe configurar el reloj de hardware en el BIOS del sistema, de modo que la configuración persista durante un reinicio (durante el inicio, la hora del sistema se establece en el valor del reloj de hardware). Haz eso con hwclock:

sudo hwclock --systohc

Esto obtiene el valor de los relojes del sistema (sys) y establece el reloj del hardware (hc). Compruébalo con el hwclockcomando. Ambos hwclocky dateahora deben mostrar la misma fecha y hora.


Para configurar su zona horaria , puede usar este comando:

sudo dpkg-reconfigure tzdata

Por cierto : si utiliza esta máquina como servidor, le recomiendo utilizar un cliente NTP para sincronizar el tiempo a través de la red . Por lo tanto, puede garantizar que todos sus servidores tengan exactamente el mismo tiempo establecido. Esto sincronizará el tiempo mientras la máquina funciona. Si tiene aplicaciones que dependen del tiempo sincronizado a través del servidor, le recomiendo el NTP-Daemon. Cuanto más tiempo se ejecuta en segundo plano, más preciso es el tiempo.


1
Perdí el paso de sincronización del reloj. Gracias por tu respuesta, ¡me ayudó!
Priska Aprilia

1
3 opciones de ayuda, cambió etc / timezone =) como php.net/manual/en/timezones.php !!! absolutamente idéntico !!!
Vladimir Ch

@VladimirCh Afortunadamente, los nombres de las zonas horarias están estandarizados, por lo que no tenemos que hacer ningún ajuste entre los sistemas. Oh, espera ... también hay algunas versiones de Microsoft ...
PeterM

1
Intento cambiar pero no cambia: - $ sudo date --set = "2015-09-30 10: 05: 59.990" Wed Sep 30 10:05:59 +0530 2015 $ date Thu May 23 15:10:37 +0530 2019
Vinod

7
  1. Busca tu zona horaria
timedatectl list-timezones
  1. Configura tu zona horaria
sudo timedatectl set-timezone America/Toronto
  1. Habilitar timesyncd
sudo timedatectl set-ntp on

Con esto, el tiempo debe establecerse y sincronizarse.

Puede ver más en este tutorial: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-18-04


1
¡La mejor manera de solucionarlo sin configurar manualmente las horas y los minutos! ¡Muchas gracias!
Rafael Moni

4

No me gusta configurar la hora del sistema manualmente. Entonces, para solucionar este problema, tuve que combinar dos respuestas diferentes.
Para corregir la hora del sistema, debe usar este código:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

como se indica en esta respuesta
Luego sincroniza el reloj del hardware con el reloj del sistema usando

sudo hwclock --systohc

según lo dado por @chaos en este hilo.


1

solo escribe

sudo date newdatestring

con newdatestring en el formato nnddhhmmyyyy.ss

  • nn: el mes (dos dígitos) (01 a 12)
  • dd: el día (de dos dígitos) (01 a 31), con las reglas regulares para los días de acuerdo con el mes y año de aplicación
  • hh: la hora (dos dígitos) (00 a 23)
  • mm: el minuto (dos dígitos) (00 a 59)
  • aaaa: el año; puede ser de dos o cuatro dígitos
  • ss es de dos dígitos segundos (00 a 59). Observe el punto '.' antes de los ss.

Pero además del comando de fecha, tal vez prefiera la "solución" NTP (protocolo de tiempo de red): Serverguide - NTP , mucho más fácil de manejar y más preciso que configurar la fecha a mano. Puede usar un cronjob o el demonio ntp (ntpd) para actualizar su tiempo cada x horas / minutos ...

¡Espero que esto ayude!


intervalo de fechas no válido cuando intenté con "093005082015.15", que significa 30 de septiembre de 2015, 05:08:15
Priska Aprilia

sudo date "093005082015.15" trabajando en el mío.
vusan

0

Para aquellos que buscan la versión de los segundos de época

  1. Establecer la fecha y hora actuales

    sudo date -s @1565864862
  2. Obtenga la fecha y hora actuales

    date +%s
    

    salidas 1565864862

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.