在 Debian 机器上,默认情况下systemd-journal
关心日志。
它的配置限制了它可以使用的最大磁盘空间:
$ cat /etc/systemd/journald.conf
SystemMaxUse=100M
SystemKeepFree=200M
现在它的目录已经满了100M左右:
$ du -hs /var/log/journal
109M /var/log/journal
在journal目录中,只有一个目录,里面有很多二进制文件。
有没有办法知道这109M空间按服务的分配情况?
IE
nginx: 15M
httpd: 20M
...
目前我没有找到任何方法来检查这些信息。
您可以做到这一点,但只能使用 C API 手动浏览日记中的所有条目
sd-journal
。sd_journal_next
它并不复杂,将一个示例复制在一起,其中一些来自联机帮助页的零碎内容并替换_get_data
为_enumerate_data
:我把源代码放在这里了。**这有点快又脏,
sd_*
文档确实不太好,所以希望事情是正确的:另存为
journalsizes.c
,编译为并运行以
./journalsizes
获取以分号分隔的单位名称列表;日志条目长度(以字节为单位)。例如,您可以通过将以下内容放入名为accumulate_logsizes.sql的文本文件中来使用它:
并通过以下方式运行
sqlite3
: