该系统有非常旧的靴子(2年和3年),它们没有被回收,我无法用吸尘器清理它们:
$ journalctl --list-boots --no-pager
-16 53baf678f0d749d6b390afea4a3ef96b Wed 2014-04-02 22:07:26 IDT—Wed 2014-04-02 22:46:08 IDT
-15 60a54132f5c8450d9b33a77819a037d1 Thu 2014-04-03 00:04:50 IDT—Thu 2014-04-03 12:30:21 IDT
-14 24b65a7e589d4479bf5020b98b8120b7 Wed 2015-04-01 03:10:01 IDT—Wed 2015-04-01 08:35:21 IDT
-13 43398d6d74c849bcb359a2d3963f4aaa Wed 2015-04-08 00:26:31 IDT—Wed 2015-04-08 00:26:31 IDT
-12 51b28f394cbb4699b2c4098297f73b2e Mon 2017-07-24 18:28:02 IDT—Mon 2017-07-24 19:08:37 IDT
-11 67467a640fb5413189f9cd518a56f668 Tue 2017-07-25 01:21:00 IDT—Mon 2017-07-24 22:54:40 IDT
-10 1370875e2f2c4b3c80c82901367b0835 Tue 2017-07-25 03:05:18 IDT—Tue 2017-07-25 01:18:51 IDT
-9 462c24a6b4cd487c834e121240bb880c Tue 2017-07-25 13:16:02 IDT—Tue 2017-07-25 18:50:32 IDT
-8 970d61bd3a6f455bb67a7a77c788b930 Wed 2017-07-26 00:01:58 IDT—Wed 2017-07-26 02:37:09 IDT
-7 dc33b354faa64c7c981da25eb9b77bde Wed 2017-07-26 12:45:04 IDT—Wed 2017-07-26 17:01:02 IDT
-6 1bb69b41c09c40aea412714b09678cf2 Wed 2017-07-26 20:01:12 IDT—Wed 2017-07-26 18:43:34 IDT
-5 9a6ed1de771d4056b8be15409dfe06f4 Wed 2017-07-26 23:18:25 IDT—Tue 2017-08-01 00:04:56 IDT
-4 e3eba22761bc470ca9bd1d9004478ad1 Tue 2017-08-01 13:12:55 IDT—Tue 2017-08-01 18:40:22 IDT
-3 02d288fc10714e0592b24ea1cbaf60e4 Tue 2017-08-01 23:00:01 IDT—Wed 2017-08-02 01:29:53 IDT
-2 3230c51e8792424aaec920fa15fa96c0 Wed 2017-08-02 12:54:43 IDT—Wed 2017-08-02 18:09:52 IDT
-1 10621f49412c43cf976ab30555e6eb36 Wed 2017-08-02 22:37:36 IDT—Wed 2017-08-02 20:22:57 IDT
0 d2e38bd2d96b4027ac14e132638561fb Wed 2017-08-02 23:23:07 IDT—Thu 2017-08-03 00:03:01 IDT
我尝试按时间吸尘:
$ sudo journalctl --vacuum-time=1years
但没有删除任何内容。
我通过文件尝试过:
$ sudo journalctl --vacuum-files=12
Deleted archived journal /var/log/journal/b78deda26d9b4740a6bc52f31d993baf/system@412dc1544fb841d4909752bffd03e810-0000000000000001-00055511dc545ff3.journal (16.0M).
Deleted archived journal /var/log/journal/b78deda26d9b4740a6bc52f31d993baf/user-1000@15238a40d91c40fabe10b0bec7f53a23-00000000000009ef-0005550f5956d667.journal (25.0M).
Deleted archived journal /var/log/journal/b78deda26d9b4740a6bc52f31d993baf/system@412dc1544fb841d4909752bffd03e810-000000000000b685-00055528569c7855.journal (16.0M).
Deleted archived journal /var/log/journal/b78deda26d9b4740a6bc52f31d993baf/user-1000@15238a40d91c40fabe10b0bec7f53a23-000000000000b5cd-0005552854d417fd.journal (25.0M).
Vacuuming done, freed 82.0M of archived journals on disk.
它删除了一些靴子,但不是我期望的那些:
$ journalctl --list-boots --no-pager
-9 53baf678f0d749d6b390afea4a3ef96b Wed 2014-04-02 22:07:26 IDT—Wed 2014-04-02 22:46:08 IDT
-8 60a54132f5c8450d9b33a77819a037d1 Thu 2014-04-03 00:04:50 IDT—Thu 2014-04-03 12:30:21 IDT
-7 24b65a7e589d4479bf5020b98b8120b7 Wed 2015-04-01 03:10:01 IDT—Wed 2015-04-01 08:35:21 IDT
-6 43398d6d74c849bcb359a2d3963f4aaa Wed 2015-04-08 00:26:31 IDT—Wed 2015-04-08 00:26:31 IDT
-5 9a6ed1de771d4056b8be15409dfe06f4 Wed 2017-07-26 23:23:00 IDT—Tue 2017-08-01 00:04:56 IDT
-4 e3eba22761bc470ca9bd1d9004478ad1 Tue 2017-08-01 13:12:55 IDT—Tue 2017-08-01 18:40:22 IDT
-3 02d288fc10714e0592b24ea1cbaf60e4 Tue 2017-08-01 23:00:01 IDT—Wed 2017-08-02 01:29:53 IDT
-2 3230c51e8792424aaec920fa15fa96c0 Wed 2017-08-02 12:54:43 IDT—Wed 2017-08-02 18:09:52 IDT
-1 10621f49412c43cf976ab30555e6eb36 Wed 2017-08-02 22:37:36 IDT—Wed 2017-08-02 20:22:57 IDT
0 d2e38bd2d96b4027ac14e132638561fb Wed 2017-08-02 23:23:07 IDT—Thu 2017-08-03 00:09:37 IDT
我怎样才能摆脱那些2014年和2015年的旧靴子?为什么它们被保存下来?
更新
根据 derobert 的建议,列出目录返回以下内容:
$ ls -lt /var/log/journal/b78deda26d9b4740a6bc52f31d993baf/ | tail
-rw-r-----+ 1 root systemd-journal 26214400 Aug 2 22:44 user-1000@15238a40d91c40fabe10b0bec7f53a23-0000000000026307-000555aff155c595.journal
-rw-r-----+ 1 root systemd-journal 16777216 Aug 2 22:44 system@412dc1544fb841d4909752bffd03e810-0000000000026340-000555b006ce5e6d.journal
-rw-r-----+ 1 root systemd-journal 26214400 Aug 1 15:04 user-1000@15238a40d91c40fabe10b0bec7f53a23-000000000001d951-0005558547686519.journal
-rw-r-----+ 1 root systemd-journal 8388608 Aug 1 15:04 system@412dc1544fb841d4909752bffd03e810-000000000001d952-000555854768665a.journal
-rw-r-----+ 1 root systemd-journal 26214400 Jul 30 12:10 user-1000@15238a40d91c40fabe10b0bec7f53a23-0000000000015378-0005553e36e51b82.journal
-rw-r-----+ 1 root systemd-journal 8388608 Jul 30 12:03 system@412dc1544fb841d4909752bffd03e810-0000000000015393-0005553e40691231.journal
-rw-r-----+ 1 root systemd-journal 8388608 Apr 18 2015 user-1002.journal
-rwxr-xr-x+ 1 root systemd-journal 8388608 Apr 8 2015 user-42.journal
-rwxr-xr-x+ 1 root systemd-journal 8388608 Apr 1 2015 user-995.journal
-rwxr-xr-x+ 1 root systemd-journal 8388608 Apr 3 2014 user-1001.journal
答案1
Linux 操作系统上的新二进制日志与旧二进制日志的工作方式不同。
旧的二进制日志是/var/log/wtmp
和/var/log/btmp
。在系统引导时,将wtmp
使用用户名写入一个条目,而在系统关闭时,将使用用户名reboot
写入一个条目。查找系统重新启动的时间只需使用和命令打印出这些条目即可。wtmp
shutdown
last reboot
last shutdown
新的二进制日志是 systemd 日志,它们没有这样的条目。
反而,每一篇日记记录有一个名为启动ID。您可以通过选项看到这-o verbose
一点journalctl
。引导 ID 由内核在引导时生成,并systemd-journald
在将其添加到日志时将从内核获取的当前引导 ID 应用于每个日志记录。
为了实现该list-boots
功能,journalctl
扫描整个期刊,读取时间戳和启动ID每条记录,并注意到最早和最晚的时间戳与每个唯一的启动 ID 相关联。
有不显式启动日志条目要真空,就像旧的二进制日志的情况一样。相反,你必须摆脱全部带有您不再希望看到的启动 ID 标记的条目。
你的问题是,因为你是特权用户,所以整个期刊还包括每个用户的日记:您可以在目录列表中看到的那些user-1001.journal
和文件。user-42.journal
您还可以看到,您拥有一些自 2014 年和 2015 年以来未曾接触过的用户的每用户日志。这些日志条目包含这些旧的启动 ID。
正如手册所述,“清理”仅对存档的日志文件进行操作,而不对当前活动的文件进行操作。但您可以进一步看到 2014 年和 2015 年的各种按用户日记当前仍处于活动状态的文件对于那些用户。具有讽刺意味的是,它们从未增长到足以存档的程度。
您有两个选择:
- 使用该
--system
选项仅限制journalctl --list-boots
系统文件,并且不读取每个用户的文件。 - 用于
journalctl --rotate
强制归档每用户日志(以及系统日志 - 洞穴!),以便它们能够“真空”。如果您journalctl
没有这个,您必须向进程发送信号systemd-journald
,如其手册页中所述。
当然,在执行此操作之前,您可能需要调查一下为什么您的gdm
用户帐户有每个用户的日志,以及用户 ID 995 在 2015 年愚人节做了什么。 ☺
您可能还想查看journalctl -n 20 _BOOT_ID=53baf678f0d749d6b390afea4a3ef96b
和的结果journalctl --reverse -n 20 _BOOT_ID=53baf678f0d749d6b390afea4a3ef96b
以及其他引导 ID 的等效结果。