journalctl 入门:用一条命令读懂 Linux 系统日志

举报
yd_283574177 发表于 2026/11/07 07:33:42 2026/11/07
【摘要】 服务出问题时,先别急着翻一堆日志文件,用 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)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。