linux

如何使用journalctl查看日志

小樊
52
2025-09-23 22:55:46
栏目: 编程语言

journalctl 是一个用于查询和显示 systemd 日志的命令行工具。以下是一些常用的 journalctl 命令和选项,帮助你查看和分析系统日志:

基本用法

  1. 查看所有日志

    journalctl
    
  2. 查看最近的日志条目

    journalctl -n 100  # 查看最近的100条日志
    
  3. 实时查看日志更新

    journalctl -f  # 实时跟踪日志输出
    
  4. 查看特定服务的日志

    journalctl -u <service_name>  # 替换 <service_name> 为服务名
    
  5. 查看特定时间段的日志

    journalctl --since "2023-04-01" --until "2023-04-30"
    
  6. 查看特定启动的日志

    journalctl -b -1  # 查看上一次启动的日志
    journalctl -b  # 查看当前启动的日志
    
  7. 按关键字搜索日志

    journalctl | grep "error"  # 在所有日志中搜索包含 "error" 的行
    journalctl -u <service_name> | grep "error"  # 在特定服务的日志中搜索
    
  8. 查看特定优先级的日志

    journalctl -p err  # 查看错误级别的日志
    journalctl -p crit  # 查看严重错误级别的日志
    
  9. 查看特定用户的日志

    journalctl _UID=<user_id>  # 替换 <user_id> 为用户ID
    
  10. 查看特定进程的日志

    journalctl _PID=<process_id>  # 替换 <process_id> 为进程ID
    

高级用法

  1. 保存日志到文件

    journalctl -o short-iso > logs.txt
    
  2. 压缩日志文件

    journalctl -o short-iso | gzip > logs.txt.gz
    
  3. 查看特定内核版本的日志

    journalctl -b -1 | grep "Linux version"
    
  4. 查看特定硬件设备的日志

    journalctl -k | grep "i915"  # 替换 i915 为硬件设备名称
    
  5. 查看特定内核模块的日志

    journalctl -k | grep "module_name"  # 替换 module_name 为内核模块名称
    

示例

假设你想查看 nginx 服务的最近日志,并且只显示错误级别的日志:

journalctl -u nginx -p err

如果你想实时跟踪 nginx 服务的日志更新:

journalctl -u nginx -f

通过这些命令和选项,你可以灵活地查看和分析系统日志,帮助你诊断和解决问题。

0
看了该问题的人还看了