Como definir a hora atual no Linux?


69

Por que a saída dos seguintes comandos é diferente?

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# 

E posso alterar a hora atual no Linux?


11
Uma rápida pesquisa do Google retorna este link:> cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt

Respostas:


90

Normalmente, você deseja definir o horário automaticamente e, nesse caso, deseja ntpdconfigurar o horário automaticamente.

As especificidades diferem ligeiramente de distribuição para distribuição, mas se você estiver executando o Ubuntu, por exemplo, há um guia sobre como configurar o NTP no Ubuntu . Caso contrário, apenas o Google ntpd <distribution-name>, e você provavelmente o encontrará.

Se você deseja configurá-lo manualmente, no entanto, você pode usá-lo date --set="<date string>". Exemplos disso podem ser:

date --set="23 June 1988 10:00:00"
date --set="10:00:00"

37

Defina o relógio do hardware para a hora atual do sistema.

# hwclock --systohc

Defina a hora do sistema no relógio do hardware.

# hwclock --hctosys

23

apenas ntpdate ntp.ubuntu.come tudo ficará bem.

Há mais informações sobre isso na documentação oficial do Ubuntu


18
elabore mais sua resposta e forneça uma explicação para o controle de qualidade e futuros leitores o que o comando que você mencionou faz e por que você recomenda tal ação. nota: o controle de qualidade perguntou como alterar o horário, não como mantê-lo sincronizado.
Lorenzo Von Matterhorn

11
@LorenzoVonMatterhorn ok
Gangsar Swapurba

Isso ainda não tem explicação. O que devo esperar que execute esse comando?
jerclarke


11
Funcionou muito bem para definir a hora exata.
Sabrina Gelbart

13

Outro problema comum e muito irritante é quando o fuso horário errado é selecionado ...

Verifique o fuso horário com a saída da data:

$ date

23 de agosto de 2018 18:47:04 UTC 2013

Para corrigir o tipo de fuso horário:

$ sudo tzselect

e selecione a região correta com os números correspondentes.

Uma segunda tarefa é definir a hora correta:

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

Ou simplesmente reserve um tempo no HW-Clock:

$ sudo hwclock --hctosys


3

Nos CentOSfusos horários /usr/share/zoneinfo/, para alterar a data do sistema para um fuso horário específico, você pode:

Primeiro, faça um backup do arquivo localtime existente.

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

Em seguida, crie o link:

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

Verifique a nova data do sistema digitando date.

Para ajustar a data do sistema Linux manualmente, você pode digitar:

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

OU

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

OU

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

Para definir o relógio do hardware para a hora atual do sistema:

hwclock --systohc

OU

hwclock -w

1

"hwclock" é a data do hardware (máquina) e "data" é a data do software (sistema operacional).

Para alterar a data do hardware do PC:

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

Para alterar a data do software:

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

1

Tente o seguinte:

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

ou

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

0

dateretorne a hora especificada como a hora a partir do momento em que a CPU foi iniciada, mais o relógio interno do hardware, dado a hora, hwclockindica o tempo que o relógio interno possui.

O tempo com base na CPU tende a desviar-se por quanto tempo a máquina está funcionando, eis a razão por trás da existência do hwclock --hctosyscomando. Também é uma das razões por trás do uso do Network Protocol Time, que é usado para coordenar o horário internacionalmente na Internet.


0

use isso se não tiver 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)

O mais importante no URL é o fuso horário local

Você pode usar utc ... e etc


mas este está funcionando para mim: askubuntu.com/a/683136
user956584 27/03

0

posso mudar a hora atual no Linux?

Para mim, eu precisava executar este comando primeiro:

sudo systemctl stop systemd-timesyncd

Caso contrário, o systemd redefiniria a hora imediatamente. Após parar o serviço systemd, a execução datefunciona conforme o esperado:

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

Enquanto o serviço estava em execução, o date -scomando parecia funcionar, mas a execução dateum momento depois me daria o tempo do systemd novamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.