如何直接检查systemd日志文件?

如何直接检查systemd日志文件?

我的 arch linux 在设备上失败了。该设备没有任何屏幕,不响应网络。所以我把它的SD卡插入ubuntu桌面,看到一个新的system.journal,然后...如何查看里面有什么?

从 Arch Linux 文档中我知道我可以这样做:

 strings /mnt/arch/var/log/journal/.../system.journal | grep -i message

但这确实是基本的。问题是:

有没有比使用更方便的方法从另一个系统检查 system.journal字符串?例如,我可以指定要读取的文件吗日志控制

答案1

首先,使用的能力strings源于一个巧合,即日志不会压缩小字段(当前实现中低于 64KiB)。这不是一种受支持的阅读期刊的方式,在 archwiki 中确实应该这样标记。这更像是最后一搏的恢复方法。

现在回答问题。从日志控制(1):

-D DIR, --directory=DIR

采用目录路径作为参数。如果指定,journalctl 将在指定的日志目录 DIR 上操作,而不是在默认的运行时和系统日志路径上操作。

因此,假设损坏系统的 rootfs 挂载在 下$DEST,请使用journalctl -D $DEST/var/log/journal查看其系统日志。

为了完整起见:为了查看特定文件,请使用journalctl --file,例如journalctl --file /var/log/journal/$(cat /etc/machine-id)/system.journal。但是,请注意,日志文件会定期轮换,因此根据您的使用情况,此表单可能无法用于查看完整的日志。

相关内容