跳至主要內容

journal

chanchaw大约 1 分钟ubuntu

概述

systemd 作为 Linux 的“总管家”,管着所有服务的生死。但它有个“直肠子”特性:服务起不来?直接写日志! 问题是,这些日志散落在 /var/log 里,用 tail 看不连贯,用 grep 筛不到重点——这时候,journalctl 就是你的“日志翻译官”。它的厉害之处在于:

  • 整合所有日志:系统日志、内核日志、服务专属日志全打包

  • 带时间戳+上下文:不仅告诉你“报错了”,还告诉你“报错前发生了什么”

  • 精准过滤:按服务名、时间、优先级筛,拒绝信息过载

使用日志排除故障

使用下面命令查看最近的系统日志,-x 是扩展解释,比如 Permission denied 会标红提示权限问题,-e是“跳转到最新日志”(省得你手动滚到底)

journalctl -xe # 扩展解释,跳转到最新日志(日志文件最下面,显示最新的日志)
journalctl -xe -u nginx   # 只看nginx的日志
journalctl -xe -u mysql --since "10 minutes ago" # 显示最近10分钟的日志
journalctl -fu nginx # 实时刷新日志,用于观察进程启动过程
journalctl -p err -u mysql # err表示只查看错误日志
journalctl -xe -u nginx > nginx.log # 导出为日志文件 nginx.log

journalctl 负责找“现象”,systemctl status 负责补“背景”。比如:

systemctl status nginx -l   # -l显示完整日志行,避免截断