journalctl 入门:用一条命令读懂 Linux 系统日志
【摘要】 服务出问题时,先别急着翻一堆日志文件,用 journalctl 看一眼,往往几分钟就能定位。它是 systemd 自带的日志查看工具,把内核、系统服务和用户进程的日志集中到一起,带时间戳、可过滤、可实时跟踪。 一、journalctl 是什么现代 Linux 发行版大多用 systemd 管理服务,journald 把日志存为二进制文件,journalctl 就是读取它的工具。先看磁盘占用和...
服务出问题时,先别急着翻一堆日志文件,用 journalctl 看一眼,往往几分钟就能定位。它是 systemd 自带的日志查看工具,把内核、系统服务和用户进程的日志集中到一起,带时间戳、可过滤、可实时跟踪。
一、journalctl 是什么
现代 Linux 发行版大多用 systemd 管理服务,journald 把日志存为二进制文件,journalctl 就是读取它的工具。先看磁盘占用和最新日志:
journalctl --disk-usage
journalctl -n 20
二、最常用的命令
记住下面几条,就能应付大多数场景:
journalctl -xe # 看最近日志,附带解释
journalctl -f # 实时跟踪新日志
journalctl -b # 只看本次启动后的日志
journalctl -p err # 只看错误及以上级别
journalctl -u nginx # 只看指定服务
-u 最实用,先用 systemctl status 确认服务名再查;-p err 能快速区分提示和真正的错误。
三、按时间筛选
日志最怕没有范围,加上时间就能收窄:
journalctl --since "2026-11-07 07:00:00" --until "2026-11-07 08:00:00"
journalctl --since yesterday
journalctl --since "1 hour ago"
排障时先定时间,再加 -u 服务名;机器意外重启后,用 -b -1 看上一次启动的日志。
四、搜索关键字
默认进入 less 分页器,按空格翻页、按 / 搜索、按 q 退出。也可以直接过滤:
journalctl -u sshd | grep "Failed password"
journalctl --grep "timeout" -i
先用 -u 或 --since 缩小范围再搜索,速度快很多,-i 表示忽略大小写。
五、日志太多怎么办
日志会一直积累,磁盘满了会影响服务,先看占用再清理:
journalctl --vacuum-size=500M
journalctl --vacuum-time=7d
清理前确认没有正在排障的历史日志,清理后无法恢复。也可以改 /etc/systemd/journald.conf 设置自动轮转。
结语
journalctl 的思路很简单:先看整体,再按服务、时间、级别缩小范围,最后跟踪实时日志。把上面几条练熟,下次服务出问题,你就能快速说清什么时候、哪个服务、报了什么错。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)