¿Cómo configurar la hora actual en Linux?

69

¿Por qué es diferente la salida de los siguientes comandos?

root@vmi2115:/var# hwclock
Sun 26 Jun 2011 01:21:38 PM CEST  -0.273230 seconds
root@vmi2495:/var# date
Sun Jun 26 15:21:39 CEST 2011
root@vmi2115:/var# 

¿Y puedo cambiar la hora actual en Linux?

Wuffers
fuente
1
Una rápida búsqueda en Google devuelve este enlace:> cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt

Respuestas:

90

Por lo general, querrá tener la hora configurada automáticamente, y en ese caso, querrá ntpdconfigurar la hora automáticamente.

Los detalles varían ligeramente de una distribución a otra, pero si está ejecutando Ubuntu, por ejemplo, hay una guía sobre cómo configurar NTP en Ubuntu . De lo contrario, solo Google ntpd <distribution-name>, y probablemente lo encontrarás.

Sin embargo, si desea configurarlo manualmente, puede usarlo date --set="<date string>". Ejemplos de esto podrían ser:

date --set="23 June 1988 10:00:00"
date --set="10:00:00"
Sebastian Paaske Tørholm
fuente
37

Ajuste el reloj de hardware a la hora actual del sistema.

# hwclock --systohc

Configure la hora del sistema desde el reloj de hardware.

# hwclock --hctosys
Gjorgji Tashkovski
fuente
23

justo ntpdate ntp.ubuntu.comy todo estará bien.

Hay más información al respecto en la documentación oficial de Ubuntu

Gangsar Swapurba
fuente
18
explique más a fondo su respuesta y proporcione una explicación al control de calidad y a los futuros lectores qué hace el comando que mencionó y por qué recomienda dicha acción. nota: el control de calidad preguntó cómo cambiar la hora, no cómo mantenerla sincronizada.
Lorenzo Von Matterhorn
1
@LorenzoVonMatterhorn ok
Gangsar Swapurba
Esto todavía no tiene explicación. ¿Qué debo esperar que suceda si ejecuto este comando?
jerclarke
1
Funcionó muy bien para configurar el tiempo exacto.
Sabrina Gelbart
13

Otro problema común y muy molesto es cuando se selecciona la zona horaria incorrecta ...

Verifique la zona horaria con la salida de fecha:

$ fecha

Fre 23 de agosto 18:47:04 UTC 2013

Para corregir el tipo de zona horaria:

$ sudo tzselect

y seleccione la Región correcta con los números correspondientes.

Una segunda tarea es establecer la hora correcta:

$ sudo date --set = "18:37:00"

O simplemente tómese el tiempo del reloj HW:

$ sudo hwclock --hctosys

phylib
fuente
3

En las CentOSzonas horarias se encuentran en /usr/share/zoneinfo/, para cambiar la fecha del sistema a una zona horaria específica puede:

Primero, haga una copia de seguridad del archivo localtime existente.

sudo mv /etc/localtime /etc/localtime.bak

A continuación, cree el enlace:

sudo ln -s /usr/share/zoneinfo/Europe/Lisbon  /etc/localtime

Verifique la nueva fecha del sistema escribiendo date.

Para ajustar la fecha del sistema Linux manualmente , puede escribir:

date -s "11 MAR 2006 11:11:11"

O

date --set="11 MAR 2015 11:11:11"

O

date +%Y%m%d -s "20150311"

Para configurar el reloj de hardware a la hora actual del sistema:

hwclock --systohc

O

hwclock -w
Pedro Lobito
fuente
1

"hwclock" es la fecha del hardware (máquina) y "fecha" es la fecha del software (sistema operativo).

Para cambiar la fecha del hardware de la PC:

hwclock --set --date="2013-7-31 09:30"

Para cambiar la fecha del software:

date --set "2013-7-31 09:30"
David Motilla
fuente
1

Prueba esto:

date +%T -s "12:21:00"

o

date +%T%p -s "12:22:20AM"
date +%T%p -s "12:23:30PM"
Zeroows
fuente
0

datedevuelve el tiempo dado como el tiempo desde el momento en que se inició la CPU más el tiempo dado por el reloj interno del hardware, hwclockda el tiempo que tiene el reloj interno.

El tiempo basado en la CPU tiende a desplazarse mientras la máquina está activa, esa es la razón detrás de la existencia del hwclock --hctosyscomando. También es una de las razones detrás del uso del tiempo de protocolo de red, que se utiliza para coordinar el tiempo internacionalmente en Internet.

RedComet
fuente
0

use esto si no tiene cliente NTP

date -s $(wget -q -O - http://www.timeapi.org/eest/now | cut -d '+' -f 1 | tr -d : | tr -d - | tr -d T | cut -c 1-12)

eest en URL es su zona horaria local

Puedes usar utc ... y etc.

Ivaylo Mutafov
fuente
pero este funciona para mí: askubuntu.com/a/683136
user956584
0

¿Puedo cambiar la hora actual en Linux?

Para mí, primero necesitaba ejecutar este comando:

sudo systemctl stop systemd-timesyncd

De lo contrario, systemd restablecería la hora inmediatamente. Después de detener el servicio systemd, la ejecución datefunciona como se esperaba:

$ sudo date -s 'january 1 1971'
Fri Jan  1 00:00:00 CET 1971
$ date
Fri Jan  1 00:00:00 CET 1971

Mientras el servicio se estaba ejecutando, el date -scomando parecía funcionar, pero ejecutarlo dateun momento después me daría el tiempo del sistema nuevamente.

Luc
fuente