2011-06-26 13:23:39 +0000 2011-06-26 13:23:39 +0000
71
71

Como definir a hora actual no Linux?

Porque é 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 actual no Linux?

Respostas (10)

92
92
92
2011-06-26 15:28:54 +0000

Normalmente você vai querer ter a hora definida automaticamente, e nesse caso, você vai querer configurar ntpd para definir automaticamente a hora para você.

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

Se quiser configurá-lo manualmente, no entanto, pode usar o date --set="<date string>". Exemplos disto podem ser:

date --set="23 June 1988 10:00:00"
date --set="10:00:00"
37
37
37
2011-06-26 14:13:09 +0000

Ajuste o Relógio de Hardware para o Tempo actual do Sistema.

# hwclock --systohc

Ajuste o Tempo do Sistema a partir do Relógio de Hardware.

# hwclock --hctosys
23
23
23
2013-04-01 13:13:25 +0000

apenas ntpdate ntp.ubuntu.com e tudo ficará bem.

Há mais informações a este respeito em Ubuntu Official Documentation

13
13
13
2013-08-23 16:51:36 +0000

Outro problema comum e muito irritante é, quando se selecciona o fuso horário errado…

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

$ data

Fre Aug 23 18:47:04 UTC 2013

Para corrigir o tipo de fuso horário:

$ sudo tzselect

e seleccione a Região correcta com os números correspondentes.

Uma segunda tarefa é definir a hora correcta:

$ sudo date –set=“18:37:00”

Ou simplesmente tirar o tempo do HW-Clock:

$ sudo hwclock –hctosys

3
3
3
2015-04-03 10:00:44 +0000

Em CentOS os fusos horários estão localizados em /usr/share/zoneinfo/, para alterar a data do sistema para um fuso horário específico pode:

Primeiro, faça uma cópia de segurança do ficheiro local existente.

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

Depois, crie o link:

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

Verifique a data do novo sistema digitando date.

Para ajustar o sistema Linux data manualmente pode escrever:

date -s "11 MAR 2006 11:11:11"
date --set="11 MAR 2015 11:11:11"
date +%Y%m%d -s "20150311"

Para definir o Hardware Clock para a hora actual do sistema:

hwclock --systohc
hwclock -w
2
2
2
2015-06-17 09:24:07 +0000

Experimente:

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

ou

date +%T%p -s "12:22:20AM"
date +%T%p -s "12:23:30PM"
1
1
1
2013-07-31 07:32:37 +0000

“hwclock” é a data do hardware (máquina) e “date” é a data do software (sistema operativo).

Para alteração de hardware pc data:

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

Para alteração de software data:

date --set "2013-7-31 09:30"
0
0
0
2011-11-26 11:33:01 +0000

date retorna o tempo dado como o tempo desde o momento em que a cpu começou mais o relógio de hardware interno dado o tempo, hwclock dá o tempo que o relógio interno tem.

O tempo baseado na cpu tende a derivar o tempo que a máquina está no ar, que é a razão por detrás da existência do comando hwclock --hctosys. Também é uma das razões por detrás da utilização do Network Protocol Time, que é utilizado para coordenar as horas a nível internacional na Internet.

0
0
0
2016-09-26 12:37:17 +0000

use isto 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)

eest no URL é o seu fuso horário local

Pode usar utc… e etc

0
0
0
2019-02-20 14:18:53 +0000

posso alterar a hora actual no Linux?

Para mim, precisava de executar primeiro este comando:

sudo systemctl stop systemd-timesyncd

Caso contrário, o systemd reiniciaria a hora imediatamente. Depois de parar o serviço systemd, correr date funciona como 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 a correr, o comando date -s parecia funcionar, mas correr date um momento depois dar-me-ia novamente tempo para o systemd.