¿Cómo deshabilitar el mensaje de spam de systemd "La hora ha cambiado" en systemd journal mientras se usa sdwdate?

10

Debido al uso combinado de Debian stretch, que usa systemd por defecto, y sdwdate (que usa Slow Clock Adjuster ( gh )), el reloj de mi sistema se cambia con frecuencia.

Como resultado, journalctl -frecibe correo no deseado sin fin.

[...]
Nov 07 13:46:49 host systemd[766]: Time has been changed
Nov 07 13:46:50 host systemd[766]: Time has been changed
Nov 07 13:46:51 host systemd[766]: Time has been changed
[...]

Este no era un problema en Debian wheezy que usaba sysvinit.

¿Cómo se puede configurar systemd para que no envíe el Time has been changedmensaje al diario?

Una pregunta relacionada ¿ Cómo deshabilitar el spam del mensaje "La hora ha cambiado" de systemd en / var / log / syslog en Debian jessie? ha sido resuelto, pero esa solución no funcionará aquí.

adrelanos
fuente
systemdse preocupa profundamente por los temporizadores. Esto parece ser activado al actualizar el reloj del hardware hwclock --systohc, por ejemplo , ¿lo estás llamando cada segundo?
Sr.Spuratic
@ mr.spuratic mirando la fuente vinculada, eso parece ser exactamente lo que está sucediendo.
Dan Getz
Sí, eso es lo que está haciendo el ajuste de reloj lento (sclockadj). @ mr.spuratic
adrelanos
1
solicitud de características de systemd: option to disable systemd's “Time has been changed” message spam in journal log github.com/systemd/systemd/issues/5207
adrelanos

Respuestas:

10

El mensaje proviene de src/core/manager.clas fuentes systemd. Está codificado para usar el nivel de registro del sistema INFO.

Por defecto, systemd registra mensajes que tienen nivel INFO, si puede cambiar eso cambiando /etc/systemd/system.confa:

LogLevel=notice

pero también perderá algunos otros mensajes informativos.

Puede ser mejor parchear src/core/manager.cpara leer:

 log_struct(LOG_DEBUG,
            MESSAGE_ID(SD_MESSAGE_TIME_CHANGE),
            "MESSAGE=Time has been changed",
            NULL);

( LOG_DEBUGse define como el siguiente nivel más alto y más alto sys/syslog.h) o comentar todo el mensaje.

No he encontrado una manera de informar solo los cambios del temporizador que tienen un tamaño mínimo de X segundos. Pero si eso es posible, indudablemente crearía un parche más complejo y propenso a errores.

Anthon
fuente