Linux命令行中journalctl命令详解

journalctl是Linux系统中用于查看和管理systemd日志的核心命令,支持按时间、服务、进程等多维度过滤,如使用-u指定服务、–since设置起始时间,并可通过配置Storage=persistent实现日志持久化,结合–vacuum-time或–vacuum-size清理旧日志以防磁盘溢出。

linux命令行中journalctl命令详解

journalctl 是 Linux 系统中用于查看和管理 systemd 日志(journald)的核心命令。它能访问由 systemd-journald 服务收集的结构化日志,相比传统 syslog 工具更强大、灵活,尤其适合现代基于 systemd 的发行版如 Ubuntu、CentOS、Debian 和 Fedora。

基本用法与常见选项

直接运行 journalctl 不带参数会输出系统所有可用日志,按时间倒序排列

journalctl

常用基础选项包括:

-f:实时跟踪日志输出,类似 tail -f–no-pager:禁用分页器,适合脚本处理或快速查看-n 20:只显示最近 20 行日志–since “2025-04-01”:查看指定时间之后的日志–until “2025-04-05 10:00”:限制日志结束时间

时间格式支持多种写法,例如:

journalctl –since “2 hours ago
journalctl –since “yesterday” –until “today”

按服务或单元过滤日志

查看特定服务的日志是日常运维中最常见的需求。使用 -u 指定 unit 名称:

journalctl -u nginx.service

结合时间可定位问题时段:

journalctl -u sshd.service –since “today 08:00”

若服务刚重启过,只想看本次运行的日志,加 -b:

journalctl -u docker.service -b

按进程、用户或路径筛选

通过进程 ID 查看某进程产生的日志:

journalctl _PID=1234

根据用户查看日志(需启用用户日志支持):

journalctl –user -u user@1000.service

某些字段支持通配符匹配,如查看所有内核消息:

journalctl _TRANSPORT=kernel

也可通过可执行文件路径过滤:

journalctl /usr/bin/containerd

日志持久化与清理

默认情况下,journald 日志保存在内存(/run/log/journal),重启后丢失。要永久保存,需创建目录并修改配置:

sudo mkdir -p /var/log/journal
echo “Storage=persistent” | sudo tee /etc/systemd/journald.conf.d/keep.conf

重启服务生效:

sudo systemctl restart systemd-journald

日志可能占用较多空间,可用以下命令查看大小和清理:

journalctl –disk-usage
journalctl –vacuum-time=7d # 删除7天前日志
journalctl –vacuum-size=100M # 保留最多100MB

基本上就这些。掌握 journalctl 能快速定位系统和服务问题,关键是熟悉过滤方式和时间控制。合理配置持久化和定期清理,避免日志撑满磁盘。不复杂但容易忽略细节,比如单位名称拼写或时间格式错误会导致查不到内容。

以上就是Linux命令行中journalctl命令详解的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/197688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月1日 19:19:13
下一篇 2025年11月1日 19:20:15

相关推荐

发表回复

登录后才能评论
关注微信