Como posso manter o relógio do sistema sincronizado no Mavericks?

22

Eu tenho um iMac de 27 "em meados de 2011 executando o Mavericks (10.9.1). Atualizei do Mountain Lion neste outono quando o Mavericks foi lançado. Eu nunca tive nenhum problema antes com o relógio do sistema.

Desde a instalação do Mavericks, meu relógio sempre ganha cerca de 20 segundos por dia. Meu fuso horário está definido corretamente e "Definir data e hora automaticamente" está marcado nas minhas preferências do sistema Data e hora. Está definido para usar "Apple / Américas / EUA (time.apple.com)"

Quando abro o painel Preferências do sistema de data e hora, meu relógio é ajustado imediatamente para a hora correta, mas sem abrir o painel, ele desvia rapidamente.

Reiniciei, marquei e desmarcou a caixa para definir a data e a hora automaticamente e nenhuma delas parece ter ajudado.

Alguma solução ou idéia?


ATUALIZAR:

Eu fiz o que parece um progresso. Pergunta: Como posso saber se o meu mac está mantendo o relógio atualizado corretamente? e sua resposta aceita pelo grgarside forneceu uma grande ajuda útil na solução de problemas. Meu desvio é de 499.988 (ganhos 43,19 segundos por dia)!

Mais importante, o marcapasso está sendo executado a cada 5 a 15 segundos, conforme evidenciado pelo meu log de tronco, no entanto, toda vez que é executado, ocorre um erro:

Feb  1 11:53:29 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:53:39 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:53:51 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:53:59 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:54:09 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:54:19 jsw.local pacemaker[19928]: adjtime: Operation not permitted

Parece que tenho um problema de permissão, mas não consigo descobrir. Descarreguei e recarreguei o marcapasso plsit via launchctl

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.pacemaker.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.pacemaker.plist

aqui está uma exportação de texto do meu com.apple.pacemaker.plist

{
    Label = "com.apple.pacemaker";
    ProgramArguments = (
        "/usr/libexec/pacemaker",
        "-b",
        "-e",
        "0.0001",
        "-a",
        10,
    );
    KeepAlive = {
        PathState = {
            "/private/var/db/ntp.drift" = YES;
        };
    };
}

meu arquivo /private/var/db/ntp.drift pertence ao root: wheel e suas permissões são 644, /System/Library/LaunchDaemons/com.apple.pacemaker.plist possui exatamente a mesma propriedade e permissões.

Espero que esta atualização forneça informações adicionais suficientes para que alguém possa me solucionar esse problema.

Scott
fonte
2
Eu nunca tive o sistema desligado como você descreveu, mas outra pessoa aqui precisava selecionar um servidor de horário diferente (na Ásia, se você usa os EUA atualmente) e depois voltar para obter a configuração adequada.
bmike
Eu acho que há algo errado com o seu DNS ou hostfile. Você modificou suas configurações e preferências de rede de alguma maneira? Não apenas abaixo de 10,9, mas 10,8? Eu tentaria mudar de time.apple.com para um dos URLs de pool.ntp.org/en .
Andrew U.
1
@AndrewU. O seu comentário não conta para o fato de que o tempo aparentemente sincroniza corretamente quando eu abrir o painel de pref
Scott
1
@ bmike Estou tentando isso, só não voltei ao iMac para verificar as coisas. Obrigado, Scott
Scott
1
Estou tendo exatamente o mesmo problema - o relógio é desviado por minutos por semana, mas é imediatamente sincronizado corretamente quando abro o painel de preferências do relógio. Percebi que o erro "adjtime: Operação não permitida" pode ser eliminado. Você executa o pacemaker na linha de comando via sudo: sudo / usr / libexec / pacemaker -v Mas isso não é realmente uma solução, apenas uma dica do que pode estar acontecendo errado nos bastidores.
precisa

Respostas:

22

estes parecem funcionar bem no meu iMac, executando o Mountain Lion:

0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org time.apple.com

basta copiar / colar a linha separada por espaço acima no campo 'Definir data e hora automaticamente', nas preferências Data e hora. lembre-se de pressionar Enter depois de digitar os nomes dos servidores ntp, para que o ntp.conf seja atualizado.

user1082
fonte
Não entendo por que isso funcionou, mas funcionou!
Scott
Em Yosemite este tornou-se um drop-down que não parece como sendo editado (mesmo que pareça meio levemente como você pode editá-lo ...) :(
RedYeti
Você ainda pode editar em Yosemite (acabei de editar!). Se você selecionar o menu suspenso e pressionar a tecla Excluir, verá o texto desaparecer. Você não pode usar cmd + v para colar, mas o clique secundário fornece uma opção de colar no menu.
Ryan Dlugosz
3

O ntpd de Maverisks está quebrado, esmagado, corrompido. A Apple sabe disso: passei horas no telefone com eles, fornecendo amostras e arquivos em abundância. Pode ser uma transferência do iOS ("Voltar para o Mac", se ele realmente funciona ou não). O culpado parece ser uma novidade no daemon Maverisks, chamado "pacemaker", que na moda clássica da Apple está sub-documentado e não parece se comportar de acordo com a pouca documentação existente.

exterior
fonte
Há uma longa discussão sobre isso aqui: discussões.apple.com
thread
Confira o ChronyControl de Bryan Christianson (Bryan também está por trás do WhatRoute). Ele traz alguma sanidade de volta à cronometragem ntp usando o Mojave v10.14.4.
exterior
2

Antes de fazer uma nova instalação, sugiro fortemente que você tente redefinir sua NVRAM (RAM não volátil).

Uma NVRAM (ou PRAM em Macs antigos baseados em PowerPC) armazena certas configurações. É um tipo de memória como a RAM normal do seu Mac, mas com uma grande diferença: a NVRAM armazena o conteúdo, mesmo que o Mac seja desligado.

Especificamente, as informações armazenadas na NVRAM / PRAM incluem:

  • Volume do alto-falante
  • Configurações de fuso horário
  • Resolução da tela
  • Seleção de disco de inicialização
  • Pânico recente do kernel, se houver

Provavelmente, o que está armazenado na sua NVRAM sobre o seu tempo foi corrompido de alguma forma e agora causa o seu problema.

Agora, você pode perguntar: e a sincronização do tempo com os servidores? Para que eu preciso disso? Bem, é apenas para definir o seu tempo, em vez de você fazê-lo manualmente. Apenas um pequeno gesto; nada mais. Depois de definido, ele é armazenado em sua NVRAM, como de costume.

E sua hora é corrigida toda vez que você abre suas Preferências de Data e Hora, porque provavelmente a abertura de lá inicia uma sincronização manual da sua hora com o servidor. Mas depois disso as coisas dão errado novamente.

De qualquer forma, para redefinir sua NVRAM:

  • Desligue o seu Mac.
  • Localizar as seguintes teclas no teclado: Comando (⌘) , Opção , P , e R . Você precisará manter essas teclas pressionadas simultaneamente na etapa 4.
  • Ligue o computador.
  • Pressione e mantenha pressionadas as teclas Command-Option-PR antes que a tela cinza apareça.
  • Mantenha as teclas pressionadas até o computador reiniciar e você ouvir o som de inicialização pela segunda vez.
  • Solte as teclas.

Fonte: Apple

Can Sürmeli
fonte
1
Eu pude ver a redefinição da NVRAM limpar um fuso horário incorreto, mas na medida em que afeta a pontualidade e a capacidade do ntpd de impedir que o relógio se desvie das fontes da Internet - há muitos links ausentes entre o que é armazenado na NVRAM e como a hora é definida. Especialmente porque o sistema sai e se corrige automaticamente durante a execução, abrindo o painel de preferências do sistema. Você está pensando que está ficando bagunçado no momento da inicialização, talvez?
bmike
2

Você pode ntpdatevia launchd.

Reuni as peças em https://github.com/tjluoma/ntp-fix-time, mas incluirei os bits relevantes aqui:

  1. Um launchdplist que entra em / Library / LaunchDaemons / (porque precisa ser executado como rootquando é executado)

  2. Um script de shell que chama ntpdate -u $NTPHOSTe registra sua saída.

Por alguma razão, tentar ligar ntpdatediretamente via launchdnão funcionou para mim, mas chamá-lo através de um script pareceu funcionar.

O plistusa isso:

    <key>RunAtLoad</key>
    <true/>

para garantir que ele seja executado quando o Mac for reiniciado.

Este:

    <key>StartInterval</key>
    <integer>14400</integer>

garante que ele seja executado a cada 4 horas, o que parecia "bastante".

O script usará os servidores listados em /etc/ntp.conf, a menos que não exista nenhum; nesse caso, ele será usado time.apple.com.

(A manpágina para ntpdatesugere que, eventualmente, será 'aposentada' do Mac OS X, mas ainda estará lá na 10.9.1, portanto é o suficiente para mim.)

TJ Luoma
fonte
Parece que vai funcionar - embora eu esteja confuso por que é necessário e se há outros problemas do sistema que eu não conheço.
Scott Scott
1
FYI - Não sou fã de depender da variável PATH nos trabalhos LaunchDaemons ou cron. Fui queimado muitas vezes, acho que é uma prática muito melhor usar o caminho completo. No caso de LaunchDaemons, você pode especificar um WorkingDirectory que, se usado, elimina a necessidade de especificar o caminho completo.
Scott Scott
1

Até agora, não consegui eliminar o desvio do relógio. Como o relógio muda lentamente (menos de um minuto por dia), leva um tempo para ver se a tentativa de solução funciona.

Acabei de tentar uma variação da resposta de Patrix deste post . O eco não funcionou na linha de comando, recebi "permissão negada" (a resposta dele foi referente a uma instalação do Lion). Mas eu removi o arquivo antigo e o substitui por um novo que editei com o nano.

sudo rm /etc/ntp.conf
sudo touch /etc/ntp.conf
sudo nano /etc/ntp.conf

no arquivo eu simplesmente coloquei

server time.apple.com

sem rastro. ou nova linha. Saí do nano (ctrl-X) e respondi sim para salvar as alterações.

Não precisei mudar de proprietário, pois ele já era de propriedade do root: wheel.

Vou atualizar quando souber se isso funcionou.

Scott
fonte
1
Isto não funcionou
Scott
2
Por que você toca antes de alterá-lo?
Max Ried
0

Eu queria fornecer meus dois centavos nesse problema. Eu tive um problema parecido. Meu relógio demoraria uma hora e o que funcionou para mim foi desmarcar o fuso horário Definir automaticamente usando o local atual e apenas escolher manualmente a cidade mais próxima. Não custa tentar e ver se isso faz diferença.

lovesimac
fonte
0

Como foi discutido em outro lugar, o desvio do relógio é devido ao ntpd não funcionar e algo chamado / usr / libexec / pacemaker também não está funcionando corretamente. Desativar o marcapasso e executar o ntpdate para diminuir o relógio tornou o relógio razoavelmente estável no meu sistema, com alterações mínimas no sistema.

No Terminal, execute esses comandos em ordem.

cd /System/Library/LaunchDaemons/
mv com.apple.pacemaker.plist com.apple.pacemaker.plist.OFF
sudo crontab -l > /tmp/foo
echo '*/5 * * * * /usr/sbin/ntpdate -s -B -u time.apple.com' >> /tmp/foo
sudo crontab /tmp/foo

Em seguida, reinicie o sistema.

Os dois primeiros comandos desativam o pacemaker, movendo seu arquivo de configuração launchd para fora do caminho. Os últimos três comandos dizem ao daemon cron do sistema para executar o ntpdate a cada cinco minutos, diminuindo a velocidade ou acelerando o relógio conforme necessário e registrando o que ele faz em /var/log/system.log.

Kyle Jones
fonte
-2

Se você ligar para a Apple, eles sugerem que você reinstale preservando o sistema operacional.

Meu palpite é que você tem uma preferência corrompida. Você pode tentar alterar todas as configurações no painel de preferências Data e hora para outra coisa, reiniciar e depois defini-las como desejar. Se isso não funcionar, vá para o diretório Preferências e remova qualquer lista de preferências que tenha algo a ver com Data e Hora das Preferências.

vy32
fonte
Reinstalar? HORRORES! Por isso deixei o Windows anos atrás. Certamente, pessoas inteligentes e razoáveis ​​podem encontrar uma solução melhor do que reinstalar um sistema operacional.
Scott Scott
E no que diz respeito diretamente às Preferências, remova as listas relacionadas a Data e Hora. Acho essa recomendação incompleta e perigosa. Se esse for realmente o seu conselho, você deve A) fornecer o local da pasta. E B) aconselha o usuário a mover os arquivos para outro lugar (área de trabalho, talvez) em vez de excluí-los. Muitas pessoas, de vários níveis de experiência, lerão esta pergunta.
Scott Scott
Acho que você não ligou para o suporte técnico da Apple recentemente. Reinstalar o OSX é uma operação bastante simples. Todos os seus aplicativos permanecem instalados, todos os usuários permanecem presentes.
vy32
Ligou para a Apple ontem. 3 horas no telefone. Em seguida, reinstale o sistema operacional por 4 horas (através da Internet rápida em um SSD). Em seguida, duas horas ajustando os arquivos de configuração (apache, etc) que foram derrotados pela reinstalação do SO. E depois de tudo isso - MEU RELÓGIO AINDA DRIGA. Nem perto de indolor e o problema não foi resolvido.
Scott Scott