O relógio do Ubuntu está desligado em cerca de meia hora:
Onde eu começo a solucionar isso?
Ele está sendo definido "automaticamente da Internet". Como posso verificar se "a Internet" sabe que horas são?
Detalhes
O Ubuntu teve muito tempo para se comunicar com a Internet:
$ date; uptime
Fri May 18 05:56:00 PDT 2012
05:56:00 up 12 days, 10:48, 2 users, load average: 0.61, 0.96, 1.15
O servidor de horário que encontrei por meio de uma pesquisa na Web parece saber a hora correta:
$ date; ntpdate -q north-america.pool.ntp.org
Fri May 18 05:56:09 PDT 2012
server 208.38.65.37, stratum 2, offset 1752.625337, delay 0.10558
server 46.166.138.172, stratum 2, offset 1752.648597, delay 0.10629
server 205.189.158.228, stratum 3, offset 1752.672466, delay 0.11829
18 May 05:56:18 ntpdate[29752]: step time server 208.38.65.37 offset 1752.625337 sec
Não há erros relatados relacionados ao NTP:
$ grep -ic ntp /var/log/syslog
0
Após a reinicialização, a hora foi corrigida automaticamente e o seguinte apareceu em /var/log/syslog
:
May 18 17:58:12 aux ntpdate[1891]: step time server 91.189.94.4 offset 1838.497277 sec
Um log do deslocamento relatado pelo ntpdate revela que o relógio está flutuando cerca de 9 segundos a cada hora:
$ while true; do ntpdate-debian -q | tail -n 1 >> 'drift.log'; sleep 16m; done
^C
$ r -e '
attach(read.table("drift.log", header=FALSE))
clock <- as.POSIXct(paste(V1, V2, V3), format="%d %b %H:%M:%S")
fit <- lm(V10~clock)
png("drift.png")
plot(clock, V10, xlab="Clock time", ylab="Time server offset (s)")
abline(fit)
mtext(sprintf("Drift rate: %.2f s/hr", fit$coefficients[[2]]*3600))
'
Respostas:
O ntp faz bem em manter o computador configurado no momento certo e faz isso sem nunca executá-lo ao contrário - o que seria uma coisa ruim para alguns programas que você pode estar executando.
Ele não apenas define o tempo, mas também faz ajustes contínuos na maneira como o computador mantém o tempo, para que o tempo não seja apenas certo em um instante no tempo, mas permaneça próximo ao tempo real (em dezenas de milissegundos, não em dezenas de minutos) . Ajusta a fase (a hora) e a taxa (com que rapidez o relógio "bate"). NTP nunca faz o relógio correr para trás. Pode demorar muito tempo para estabelecer a rapidez com que o relógio é marcado após uma reinicialização, para que o ntp acompanhe a deriva em um arquivo chamado /var/lib/ntp/ntp.drift. Como você não está executando o NTP, nada disso acontece.
O ntp não é tão popular como antigamente porque laptops e desktops adormecidos e máquinas virtuais impedem sua execução algumas vezes. Ele foi projetado para funcionar de vez em quando, de acordo com sua própria programação, em um computador que funciona o tempo todo e no mundo real, onde o tempo é contínuo. É provavelmente por isso que não é instalado por padrão na estação de trabalho moderna. [Para VMware, veja isso]
Em vez disso, o ntpdate é executado quando a interface de rede é ativada. Quando um laptop adormecido é despertado, ele restabelece a conexão de rede, o ntpdate é executado e a hora é novamente correta. Se o relógio de hardware da máquina é bastante preciso e a rede é ativada e desativada com bastante frequência, isso geralmente é bom o suficiente para a maioria das pessoas.
Por alguma razão, o ntpdate de ações nem sempre é executado. Use o ntpdate-debian nesse caso. Sintaxe para o for.mer é algo como ntpdate ntp.ubuntu.com , para o último é ntpdate-debian
Na ausência de uma dessas coisas, o ntp é a melhor maneira de manter o tempo.
Os sistemas são projetados para interromper o cronômetro de vez em quando e atualizar sua idéia do horário a cada interrupção. Enquanto o temporizador do hardware estiver funcionando conforme as especificações. o tempo não muda muito. Se o temporizador do hardware não for, o tempo será desviado mais (todos esses relógios serão levados um pouco, pela mesma razão que o relógio de pulso ou o relógio controlado por bateria. Os relógios conectados à parede são sincronizados com o tempo pela freqüência e fase mantidas por sua empresa de energia).
A maioria dos cronômetros de computador é controlada por um circuito oscilador controlado por cristal em seus circuitos integrados. Apesar do cristal, eles correm mais rápido e mais devagar, dependendo do ambiente, principalmente da temperatura. A menos que você tenha algum tempo sincronizando o software instalado que não conhecemos, eu diria que o relógio do sistema está fora das especificações.
Se você executasse o ntp por um dia ou dois, ele armazenaria informações em /var/lib/ntp/ntp.drift que indicariam quanto seria necessário ajustar a taxa na qual o tempo do sistema operacional avança por interrupção para combine sua taxa de clock de hardware com o tempo real que obtém pela internet. Manter o arquivo igual e apenas iniciar e parar o ntp após um minuto depois (supondo que você mantenha o arquivo /var/lib/ntp/ntp.drift inalterado) pode fazer muito para corrigir isso, se o ajuste da polarização do relógio ntp permanecer após NTP termina. Não tenho certeza desse detalhe.
Eu suspeito que o valor que o ntp armazenaria em /var/lib/ntp/ntp.drift seja muito diferente do meu.
Se essa máquina continuar funcionando o tempo todo, a melhor coisa a fazer é instalar o ntp e deixá-lo fazer o que quer. Veja as outras respostas para obter detalhes sobre como acertar a hora antes de iniciá-la. Eu corro o ntp na minha área de trabalho e o ntpdate no meu laptop.
Uma alternativa possível interessante, adjtimex, é mencionada nesta resposta por nealmcb.
Se o seu sistema não for mantido funcionando o tempo todo, executar o ntpdate no momento da inicialização parecerá uma boa opção.
Aviso: alguns softwares podem surtar se o tempo do computador voltar atrás. A execução do ntpdate após a inicialização pode fazer com que isso ocorra.
Um problema, isso pode ser um problema: Pelo que me lembro, a NTP espera que o tempo não seja muito distante. Se for, tentando agir de forma conservadora, o ntp não ajustará a hora. Se você estiver nessa situação, faz sentido executar as duas coisas - execute o ntpdate na inicialização para inicializar o horário no momento certo e, em seguida, deixe o ntp executar para mantê-lo em execução, fornecendo uma indicação precisa da hora. Em particular, uma bateria ruim da placa-mãe pode causar esse erro, assim como a inicialização de um computador que está desligado há muito tempo.
fonte
man rtc
página diz: "Os RTCs não devem ser confundidos com o relógio do sistema, que é um relógio de software mantido pelo kernel e usado para implementar gettimeofday (2) ..." Não sei se o relógio do sistema está relacionado ao relógio FSB . Observando a configuração do kernel, o kernel i386 preciso do último Ubuntu tem o relógio do sistema sendo atualizado em 250Hz. Obrigado pelo comentário!- Normalmente, o tempo é sincronizado apenas uma vez após cada inicialização ou ativação do modo de suspensão
Não, o servidor de horas do Ubuntu está correto e está definindo a hora automaticamente.
O problema é que isso geralmente ocorre apenas uma vez em cada inicialização (ou, para ser mais preciso, sempre que uma interface de rede é aberta - seja por desligamento, suspensão ou hibernação). Com base no seu tempo de atividade, é seguro dizer que não foi sincronizado em mais de uma semana. E o relógio do sistema está funcionando um pouco rápido por algum motivo.
- Configure um
cron
trabalho por hora para sincronizar se você não reiniciar com frequência ou se o servidor / desktop nunca dormeSua melhor aposta é configurar um cron-job, eu diria a cada hora se você quiser um tempo super preciso. A maneira mais fácil de fazer isso é:
sudo editor /etc/cron.hourly/ntpsync
Adicione as seguintes linhas:
sudo chmod +x /etc/cron.hourly/ntpsync
Você pode colocar isso
/etc/cron.daily
se preferir, uma vez por dia.fonte
Isso pode acontecer se você instalou o daemon ntp time e o tempo em sua máquina está muito longe para ser corrigido rapidamente.
Para consertá-lo, abra um terminal e faça
O que isso faz:
Se você não possui o ntp instalado, faça-o com
Atualização: O uso do ntpdate em um trabalho cron, conforme recomendado aqui, gera problemas sutis.
O ntpdate fará o tempo "saltar" a cada hora ou mais. O uso de ntp evita esse problema, porque ele ajusta a hora inclinando o relógio. Além disso, embora a seleção de um servidor NTP na vizinhança ofereça uma precisão ainda maior, não é necessário. O arquivo de configuração ntp padrão possui vários servidores e o servidor compensa automaticamente quaisquer atrasos.
Conclusão: - use ntp - se você estiver longe, desligue o ntp, execute o ntpdate uma vez e reinicie o ntp.
fonte
/etc/init.d/ntp
não existe. Esta é uma instalação bastante recente do Ubuntu 12.04 e não mudei deliberadamente nada relacionado ao tempo.Eu tive um problema semelhante e foi causado por algo no firewall. No final, adicionei o trabalho cron horário, mas adicionei o
-u
argumento parantpdate
que ele usasse uma porta não padrão.Meu problema foi causado pelo fato de o Ubuntu não ter verificado se
ntpdate
funcionava, mas automaticamente assumindo que funcionaria.fonte