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?

Wuffers
fonte
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"
Sebastian Paaske Tørholm
fonte
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
Gjorgji Tashkovski
fonte
23

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

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

Gangsar Swapurba
fonte
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

phylib
fonte
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
Pedro Lobito
fonte
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"
David Motilla
fonte
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"
Zeroows
fonte
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.

RedComet
fonte
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

Ivaylo Mutafov
fonte
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.

Luc
fonte