¿Cómo puedo mantener sincronizado el reloj de mi sistema en Mavericks?

22

Tengo un iMac de 27 "a mediados de 2011 con Mavericks (10.9.1). Actualicé desde Mountain Lion este otoño cuando se lanzó Mavericks. Nunca tuve ningún problema antes con el reloj de mi sistema.

Desde que instalé Mavericks, mi reloj constantemente gana unos 20 segundos por día. Tengo mi zona horaria configurada correctamente y "Establecer fecha y hora automáticamente" está marcado en mis preferencias del sistema de fecha y hora. Está configurado para usar "Apple / Americas / US (time.apple.com)"

Cuando abro el panel de Preferencias del sistema de fecha y hora, mi reloj se ajusta inmediatamente a la hora correcta, pero sin abrir el panel, se desvía bastante rápido.

He reiniciado, marcado y desmarcado la casilla para configurar la fecha y la hora automáticamente y ninguno parece haber ayudado.

¿Alguna solución o idea?


ACTUALIZAR:

He hecho lo que se siente como progreso. Pregunta: ¿Cómo puedo saber si mi Mac mantiene el reloj actualizado correctamente? y su respuesta aceptada por grgarside proporcionó mucha ayuda útil para la resolución de problemas. ¡Mi deriva es de 499.988 (gana 43.19 segundos por día)!

Lo más importante es que el marcapasos se ejecuta cada 5 a 15 segundos, como lo demuestra mi registro de tallo, sin embargo, cada vez que se ejecuta, aparece un error:

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 tengo un problema de permiso, pero no puedo resolverlo. He descargado y recargado el marcapasos plsit a través de launchctl

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

Aquí hay una exportación de texto de mi 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;
        };
    };
}

mi /private/var/db/ntp.drift es propiedad de root: wheel y sus permisos son 644, /System/Library/LaunchDaemons/com.apple.pacemaker.plist tiene exactamente la misma propiedad y permisos.

Espero que esta actualización proporcione suficiente información adicional para que alguien pueda superar este problema.

Scott
fuente
2
Nunca he hecho que el sistema se apague como usted describe, pero otra persona aquí necesitaba seleccionar un servidor de hora diferente (asia si usa US actualmente) y luego volver a cambiar para que la configuración se mantenga.
bmike
Supongo que hay algo mal con su DNS o archivo host. ¿Ha modificado la configuración y las preferencias de su red de alguna manera? ¿No solo por debajo de 10.9 sino por 10.8? Intentaría cambiar de time.apple.com a una de las URL de pool.ntp.org/en .
Andrew U.
1
@AndrewU. Su comentario no tiene en cuenta el hecho de que el tiempo aparentemente se sincroniza correctamente cuando abro el panel de preferencias
Scott
1
@bmike Estoy intentando esto, simplemente no he vuelto a ese iMac para ver las cosas. Gracias, Scott
Scott el
1
Tengo exactamente el mismo problema: el reloj se desplaza por minutos a la semana, pero se sincroniza inmediatamente cuando abro el panel de preferencias del reloj. Noté que el error "adjtime: Operación no permitida" se puede eliminar si ejecuta pacemaker en la línea de comando a través de sudo: sudo / usr / libexec / pacemaker -v Pero eso no es realmente una solución, solo una pista de lo que podría estar sucediendo mal detrás de escena.
Brian Stormont

Respuestas:

22

estos parecen funcionar bien en mi iMac, ejecutando Mountain Lion:

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

simplemente copie / pegue la línea separada por espacios arriba en el campo 'Establecer fecha y hora automáticamente', en las preferencias de Fecha y hora. recuerde presionar Enter después de escribir los nombres de los servidores ntp, para que ntp.conf se actualice.

usuario1082
fuente
No entiendo por qué funcionó, ¡pero funcionó!
Scott
En Yosemite esto se ha convertido en un menú desplegable al que no parece gustarle editarlo (aunque parece que puede editarlo ...) :(
RedYeti
Todavía puedes editar en Yosemite (¡acabo de hacerlo!). Si selecciona el menú desplegable y presiona la tecla Eliminar, verá que el texto desaparece. No puede usar cmd + v para pegar, pero el clic secundario le da una opción de pegar en el menú.
Ryan Dlugosz
3

El ntpd de Maverisks está roto, destrozado, corrupto. Apple sabe de esto: les he pasado horas hablando por teléfono, proporcionándoles muestras y archivos en abundancia. Puede ser una transferencia desde iOS ("Volver a la Mac", ya sea que realmente funcione o no). El culpable parece ser nuevo con el demonio Maverisks llamado "marcapasos", que en la moda clásica de Apple está poco documentado y no parece comportarse de acuerdo con la poca documentación que hay.

exterior
fuente
Hay una lenghty discusión sobre esto aquí: discussions.apple.com/thread/5604114
shrx
Echa un vistazo a ChronyControl de Bryan Christianson (Bryan también está detrás de WhatRoute). Trae un poco de cordura al cronometraje ntp usando Mojave v10.14.4.
exterior
2

Antes de realizar una instalación nueva, le sugiero que intente restablecer su NVRAM (RAM no volátil).

Una NVRAM (o PRAM en Macs antiguos basados ​​en PowerPC) almacena ciertas configuraciones. Es un tipo de memoria como la RAM normal en su Mac, pero con una gran diferencia es que una NVRAM almacena lo que tiene, incluso si su Mac se apaga.

Específicamente, la información almacenada en NVRAM / PRAM incluye:

  • Volumen del altavoz
  • Configuraciones de zona horaria
  • Resolución de la pantalla
  • Selección de disco de inicio
  • Kernel panic reciente, si lo hay

Probablemente, lo que está almacenado en su NVRAM sobre su tiempo se corrompió de alguna manera y ahora causa su problema.

Ahora, podrías preguntarte, ¿qué pasa con la sincronización del tiempo con los servidores? ¿Para qué necesito eso? Bueno, es solo para configurar su tiempo en lugar de hacerlo manualmente. Solo un pequeño gesto; nada mas. Después de que se configura, se almacena en su NVRAM como de costumbre.

Y su tiempo se corrige cada vez que abre sus Preferencias de fecha y hora porque probablemente al abrir allí se inicia una sincronización manual de su tiempo con el servidor. Pero después de eso las cosas se vuelven locas nuevamente.

De todos modos, para restablecer su NVRAM:

  • Apaga tu Mac.
  • Localiza las siguientes teclas en el teclado: Comando (⌘) , Opción , P y R . Deberá mantener presionadas estas teclas simultáneamente en el paso 4.
  • Enciende el ordenador.
  • Mantenga presionadas las teclas Comando-Opción-PR antes de que aparezca la pantalla gris.
  • Mantenga presionadas las teclas hasta que la computadora se reinicie y escuche el sonido de inicio por segunda vez.
  • Suelta las llaves.

Fuente: manzana

Can Sürmeli
fuente
1
Pude ver que restablecer NVRAM borra una zona horaria incorrecta, pero en lo que afecta al cronometraje y la capacidad de ntpd para evitar que el reloj se desvíe de las fuentes de Internet, hay muchos enlaces faltantes entre lo que está almacenado en NVRAM y cómo se ajusta el tiempo. Especialmente porque el sistema se apaga y se corrige automáticamente mientras se ejecuta al abrir el panel de preferencias del sistema. ¿Estás pensando que tal vez se está estropeando en el momento del arranque?
bmike
2

Puede a ntpdatetravés de launchd.

He reunido las piezas en https://github.com/tjluoma/ntp-fix-time pero incluiré los bits relevantes aquí:

  1. Una launchdlista que va a / Library / LaunchDaemons / (porque debe ejecutarse como rootcuando se ejecuta)

  2. Un script de shell que llama ntpdate -u $NTPHOSTy registra su salida.

Por alguna razón, tratar de llamar ntpdatedirectamente a través de launchdno funcionó para mí, pero llamarlo a través de un script parecía funcionar.

El plistusa esto:

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

para asegurarse de que se ejecuta cuando se reinicia la Mac.

Esta:

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

se asegura de que se ejecute cada 4 horas, lo que parecía que era "con la suficiente frecuencia".

El script usará los servidores listados en /etc/ntp.conf a menos que no haya ninguno, en cuyo caso lo usará time.apple.com.

(La manpágina ntpdatesugiere que eventualmente será 'retirado' de Mac OS X pero todavía está allí en 10.9.1, así que eso es suficiente para mí).

TJ Luoma
fuente
Parece que funcionará, aunque estoy desconcertado por qué es necesario y si hay otros problemas del sistema que desconozco.
Scott
1
FYI: no soy fanático de confiar en la variable PATH en LaunchDaemons o en trabajos cron. Me han quemado demasiadas veces, creo que es una práctica mucho mejor utilizar la ruta completa. En el caso de LaunchDaemons, puede especificar un WorkingDirectory que, si se usa, elimina la necesidad de especificar la ruta completa.
Scott
1

Hasta ahora no he logrado eliminar la deriva del reloj. Debido a que mi reloj se mueve lentamente (menos de un minuto por día) Toma un tiempo ver si la solución intentada funciona.

Acabo de probar una variación de la respuesta de Patrix de esta publicación . El eco no funcionó en la línea de comando, obtuve "permiso denegado" (Su respuesta hacía referencia a una instalación de Lion). Pero eliminé el archivo antiguo y lo reemplacé por uno nuevo que edité con nano.

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

en el archivo que simplemente coloqué

server time.apple.com

sin rastros. o nueva línea. Luego salí de nano (ctrl-X) y respondí que sí para guardar los cambios.

No necesitaba cambiar de propietario ya que ya era propiedad de root: wheel.

Actualizaré cuando sepa si esto funcionó.

Scott
fuente
1
Esto no funcionó
Scott
2
¿Por qué lo tocas antes de modificarlo?
Max Ried
0

Quería aportar mis dos centavos sobre este problema. Tuve un problema similar. Mi reloj tardaría una hora y lo que funcionó para mí fue desmarcar la zona horaria Establecer automáticamente usando la ubicación actual, y simplemente elegir manualmente la ciudad más cercana. No está de más intentarlo y ver si hace la diferencia.

lovesimac
fuente
0

Como se ha discutido en otra parte, la deriva del reloj se debe a que ntpd no funciona y algo llamado / usr / libexec / pacemaker tampoco funciona correctamente. Desactivar el marcapasos y ejecutar ntpdate para girar el reloj ha hecho que el reloj sea razonablemente estable en mi sistema, con cambios mínimos en el sistema.

Desde la Terminal, ejecute estos comandos en orden.

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

Luego reinicie el sistema.

Los primeros dos comandos deshabilitan el marcapasos al quitar su archivo de configuración de launchd. Los últimos tres comandos le dicen al cron daemon del sistema que ejecute ntpdate cada cinco minutos, ralentizando o acelerando el reloj según sea necesario, y registrando lo que hace en /var/log/system.log.

Kyle Jones
fuente
-2

Si llama a Apple, le sugerirán que realice una reinstalación para preservar el sistema operativo.

Supongo que tienes una preferencia corrupta. Puede intentar cambiar cada configuración en el panel de preferencias de Fecha y Hora a otra cosa, reiniciar, y luego configurarlo como desee. Si eso no funciona, vaya al directorio de Preferencias y elimine cualquier lista de preferencias que tenga algo que ver con Fecha y hora de preferencias.

vy32
fuente
¿Reinstalar? ¡HORRORES! Por eso dejé Windows hace años. Ciertamente, personas inteligentes y razonables pueden encontrar una mejor solución que reinstalar un sistema operativo.
Scott
Y en cuanto a Ir a las directivas de Preferencias y eliminar listas que tengan que ver con Fecha y hora. Encuentro esa recomendación incompleta y peligrosa. Si ese es su consejo en serio, debe A) proporcionar la ubicación de la carpeta. Y B) aconseje al usuario que mueva los archivos a otra parte (tal vez de escritorio) en lugar de eliminarlos. Muchas personas, de varios niveles de experiencia, leerán esta pregunta.
Scott
Supongo que últimamente no has llamado al soporte técnico de Apple. Reinstalar OSX es una operación bastante sencilla. Todas sus aplicaciones permanecen instaladas, todos sus usuarios permanecen presentes.
vy32
Llamé a Apple ayer. 3 horas al teléfono. Luego, una reinstalación de 4 horas del sistema operativo (a través de Internet rápido en un SSD). Luego, 2 horas ajustando los archivos de configuración (apache, etc.) que fueron bloqueados por la reinstalación del sistema operativo. Y después de todo eso, MI RELOJ SIGUE A LA DERECHA. Ni siquiera cerca de indoloro y el problema no está solucionado.
Scott