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?
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?
Respostas:
Normalmente, você deseja definir o horário automaticamente e, nesse caso, deseja ntpd
configurar 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"
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
apenas ntpdate ntp.ubuntu.com
e tudo ficará bem.
Há mais informações sobre isso na documentação oficial do Ubuntu
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
Nos CentOS
fusos 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
"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"
date
retorne 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, hwclock
indica 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 --hctosys
comando. 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.
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
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 date
funciona 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 -s
comando parecia funcionar, mas a execução date
um momento depois me daria o tempo do systemd novamente.