使用sdwdate时,如何在systemd日志中禁用systemd的“时间已更改”消息垃圾邮件?


10

由于Debian Stretch(默认情况下使用systemd)和sdwdate(使用Slow Clock Adjustergh))的组合使用,经常更改我的系统时钟。

结果journalctl -f无休止地被垃圾邮件所淹没。

[...]
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
[...]

这不是使用sysvinit的Debian狂热问题。

如何将systemd配置为不将Time has been changed邮件发送到日志?

一个相关问题如何在Debian jessie的/ var / log / syslog中禁用systemd的“时间已更改”垃圾邮件?已经解决,但是该解决方案在这里不起作用。


systemd深深地关心计时器。这似乎是通过更新硬件时钟触发的,例如hwclock --systohc,您每秒调用一次吗?
spuratic先生2014年

@ mr.spuratic看着链接的源代码,这似乎正在发生。
Dan Getz 2014年

是的,这就是慢速时钟调整(sclockadj)所做的。@ mr.spuratic
adrelanos 2014年

1
systemd功能请求:option to disable systemd's “Time has been changed” message spam in journal log github.com/systemd/systemd/issues/5207
adrelanos

Answers:


10

该消息来自src/core/manager.csystemd源。它被硬编码为使用INFO系统日志记录级别。

默认情况下,systemd记录具有INFO级别的消息,如果可以通过将其更改/etc/systemd/system.conf为:

LogLevel=notice

但是您也会丢失很多其他参考消息。

最好打补丁src/core/manager.c阅读:

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

LOG_DEBUG定义为中的下一个更高级别和最高级别sys/syslog.h),或注释掉整个消息。

我还没有找到只报告最小X秒钟的计时器更改的方法。但是,如果有可能,那无疑将构成一个更复杂且易于出错的补丁。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.