如何清除journalctl

如何清除journalctl

我在谷歌中找不到任何安全的方法来清除系统日志。有谁知道有什么安全可靠的方法吗?

假设我正在尝试一些东西,并且我的日志中充满了各种错误消息。此外,我使用 Conky 在桌面上显示我的日记。我真的不想看到这些错误,因为它们让我想起了修复这些东西的糟糕一天,在经历了这场恐怖之后,我想感觉自己像个新鲜人。我想每个人都会同意这是清除日志的正当理由:P。

答案1

自我维护方法是按尺寸或时间对原木进行真空吸尘。

仅保留过去两天:

journalctl --vacuum-time=2d

仅保留过去的 500 MB:

journalctl --vacuum-size=500M

man journalctl了解更多信息。

答案2

您通常不会自己清除日志。这是由 systemd 本身管理的,当新数据进入时,旧日志会被轮换出来。正确的做法是安排日志记录仅保留您感兴趣的数据。最常见的调整是总磁盘空间它被允许占用的空间。一旦跨越此边界,它将开始投掷旧条目以保持在该值附近。

您可以将其设置为/etc/systemd/journald.conf像这样:

SystemMaxUse=100M

这将在下次重新启动或重启 journald 服务时强制执行:

$ systemctl restart systemd-journald

答案3

迈克尔的回答缺少一件事:清理仅删除存档的日志文件,而不删除活动的日志文件。要删除所有内容,您需要先轮换文件,以便将最近的条目移动到非活动文件中。

所以,删除完整的答案全部条目似乎是

sudo journalctl --rotate
sudo journalctl --vacuum-time=1s

(请注意,您不能将其合并为一个journalctl命令。)

顺便说一句,一些发行版配置了日志记录,以便将日志写入磁盘(/var/log/journal),而其他发行版则将日志保存在内存中(/run/log/journal)。我预计在某些情况下可能需要sudo journalctl --flush先使用才能删除所有内容。

--rotate如果您的版本中没有,您可以使用--since参数来过滤条目:

--since "2019-01-30 14:00:00"
--since today

答案4

因为--vacuum-time没有--vacuum-size为我做任何事情,所以我做了以下事情:

$ sudo find /var/log/journal -name "*.journal" | xargs sudo rm 
$ sudo systemctl restart systemd-journald

这是不对的,但它有效。

相关内容