journalctl是 Linux 系统中用于查看和管理 systemd 日志的核心工具。它支持按时间、服务、优先级等多维度过滤,并能实时跟踪日志,非常适合排查系统故障和服务异常。

journalctl 命令详解

1. 基本介绍

  • 作用:查询和显示 systemd 管理的日志(替代传统 syslog)。
  • 日志来源:内核、服务(如 nginx、docker)、用户程序等。
  • 存储方式:二进制格式,支持结构化查询和高效检索。

2. 基本语法

journalctl [选项] [匹配条件...]

3. 常用选项

选项 功能说明 示例
-b 显示本次启动的日志 journalctl -b
-f 实时跟踪日志(类似 tail -f journalctl -f
-k 只显示内核日志 journalctl -k
-u 查看指定服务日志 journalctl -u nginx.service
-n 显示最近 N 条日志 journalctl -n 50
--since / --until 按时间范围过滤 journalctl --since "2025-01-01" --until "2025-01-02"
-p 按日志优先级过滤 journalctl -p err
-e 跳到日志末尾 journalctl -e
--disk-usage 查看日志占用空间 journalctl --disk-usage

4. 日志优先级

日志分级(数值越小越严重):

  • 0 emerg:紧急情况
  • 1 alert:需要立即处理
  • 2 crit:严重错误
  • 3 err:一般错误
  • 4 warning:警告
  • 5 notice:注意事项
  • 6 info:一般信息
  • 7 debug:调试信息

示例:

journalctl -p warning   # 显示警告及以上级别日志

5. 高级用法

  • 按 PID 查询journalctl _PID=1234
  • 组合过滤journalctl -u ssh.service -p err --since today
  • 导出日志journalctl > /tmp/system.log
  • 清空日志journalctl --vacuum-time=7d (只保留最近 7 天日志)

6. 注意事项

  • 日志持久化:默认日志不会长期保存,需在 /var/log/journal/ 配置持久化。
  • 权限问题:普通用户可能无法查看全部日志,需使用 sudo
  • 磁盘占用:日志文件可能很大,建议定期清理或设置轮转策略
Copyright © https://yan-jian.com 2023 all right reserved更新时间: 2025-12-22 19:08:46

results matching ""

    No results matching ""