Como alterar a data e hora do servidor ubuntu via linha de comando?


40

A data e hora atuais do servidor Ubuntu são diferentes da data e hora do fuso horário. Eu tentei usar:

sudo date "30 Sep 2015 4:43:42"

alterá-lo, mas não alterou a data e a hora, apenas imprimi no terminal a data e a hora que alterei, mas quando executei:

sudo hwclock --show

A data e a hora ainda são antigas.

Qual é a maneira correta de alterar a data e a hora do Ubuntu Server?


você realmente digitou "sudo date newdate" - a palavra "newdate"?
Wolfgang

1
Não. Eu editei minha pergunta. Eu digitei "30 set 2015 4:43:42"
Priska Aprilia

Respostas:


68

Você pode definir a data do sistema com este comando:

sudo date --set="2015-09-30 10:05:59.990"

Então, ao usar date, ele deve ser mostrado corretamente.

Agora você também deve definir o relógio do hardware definido no BIOS do sistema, para que a configuração persista durante uma reinicialização (durante a inicialização, a hora do sistema é definida como o valor do relógio do hardware). Faça isso com hwclock:

sudo hwclock --systohc

Isso obtém o valor dos relógios do sistema (sys) e define o relógio do hardware (hc). Verifique com o hwclockcomando. Ambos hwclocke dateagora devem mostrar a mesma data e hora.


Para definir seu fuso horário , você pode usar este comando:

sudo dpkg-reconfigure tzdata

BTW : Se você usar esta máquina como servidor, eu recomendo o uso de um cliente NTP para sincronizar o tempo na rede . Assim, você pode garantir que todos os seus servidores tenham exatamente o mesmo horário definido. Isso sincronizará o tempo enquanto a máquina estiver funcionando. Se você possui aplicativos que dependem do tempo sincronizado no servidor, recomendo o NTP-Daemon. Quanto mais tempo ele é executado em segundo plano, mais preciso é o tempo.


1
Eu perdi a etapa de sincronização do relógio. Obrigado pela sua resposta, isso me ajudou!
Priska Aprilia

1
3 opção ajuda, mudou etc / fuso horário =) como php.net/manual/en/timezones.php !!! absolutamente idêntico !!!
Vladimir Ch

@VladimirCh Felizmente, os nomes dos fusos horários são stadarized, portanto, não precisamos fazer nenhum ajuste entre os sistemas. Oh, espera ... há alguma versão Microsoft também ...
peterm

1
Tento mudar, mas não está mudando: - $ sudo date --set = "2015-09-30 10: 05: 59.990" Qua 30 de setembro 10:05:59 +0530 2015 $ date qui 23 de maio 15:10:37 +0530 2019
Vinod


4

Não gosto de definir a hora do sistema manualmente. Então, para corrigir esse problema, tive que combinar duas respostas diferentes.
Para fixar a hora do sistema, você deve usar este código:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

conforme indicado nesta resposta
Em seguida, sincronize o relógio do hardware com o relógio do sistema usando

sudo hwclock --systohc

como dado por @chaos neste tópico.


1

apenas digite

sudo date newdatestring

com newdatestring no formato nnddhhmmyyyy.ss

  • nn: o mês (de dois dígitos) (01 a 12)
  • dd: o dia (dois dígitos) (01 a 31), com as regras regulares para os dias de acordo com o mês e ano
  • hh: a hora (dois dígitos) (00 a 23)
  • mm: o minuto (dois dígitos) (00 a 59)
  • aaaa: o ano; pode ser de dois ou quatro dígitos
  • ss é de dois dígitos segundos (00 a 59). Observe o período '.' antes do ss.

Mas, além do comando date, talvez você prefira a "solução" NTP (protocolo de horário da rede): Serverguide - NTP , muito mais fácil de manusear e mais preciso do que definir a data manualmente. Você pode usar um cronjob ou o daemon ntp (ntpd) para atualizar seu tempo a cada x horas / minutos ...

Espero que isto ajude!


período inválido quando tentei com "093005082015.15", que significa 30 de setembro de 2015, 05:08:15
Priska Aprilia

sudo date "093005082015.15" trabalhando no meu.
vusan

0

Para quem procura a versão de segundos da época

  1. Defina a data e hora atuais

    sudo date -s @1565864862
  2. Obter a data e hora atuais

    date +%s
    

    saídas 1565864862

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.