journalctl 命令帮助文档

journalctlsystemd 系统和服务管理器的一部分,用于查询和显示由 systemd 及其组件生成的日志条目。它提供了强大的日志管理和分析功能,适用于各种场景的日志查看和诊断。本文将详细介绍 journalctl 命令的用法和常见选项。

基本用法

  • 查看所有日志:
  journalctl

显示系统启动以来的所有日志。

常见选项

启动相关选项

  • 查看当前启动周期的日志:
  journalctl -b
  • 查看上一个启动周期的日志:
  journalctl -b -1

对于更早的启动周期,可以使用 -2, -3 等。

时间相关选项

  • 查看特定时间范围的日志:
  journalctl --since "YYYY-MM-DD HH:MM:SS" --until "YYYY-MM-DD HH:MM:SS"

例如:

  journalctl --since "2024-06-10 08:00:00" --until "2024-06-10 12:00:00"
  • 查看某个时间点之后的日志:
  journalctl --since "YYYY-MM-DD HH:MM:SS"
  • 查看某个时间点之前的日志:
  journalctl --until "YYYY-MM-DD HH:MM:SS"
  • 列出全部生命周期:
  journalctl --list-boots
  列出系统中的所有启动周期及其对应的标识符、时间戳等信息,方便用户选择特定的启动周期进行分析。

服务相关选项

  • 查看特定服务的日志:
  journalctl -u <unit>

例如:

  journalctl -u sshd

内核相关选项

  • 查看内核日志:
  journalctl -k
  • 查看特定启动周期的内核日志:
  journalctl -k -b -1

优先级相关选项

  • 查看特定优先级及更高级别的日志:
  journalctl -p <priority>

例如:

  journalctl -p err

日志优先级从高到低依次为:

  • 0: emerg
  • 1: alert
  • 2: crit
  • 3: err
  • 4: warning
  • 5: notice
  • 6: info
  • 7: debug

输出格式相关选项

  • 指定输出格式:
  journalctl -o <output>

常用输出格式有:

  • short: 默认格式
  • verbose: 详细格式
  • json: JSON 格式
  • json-pretty: 美化的 JSON 格式
  • json-sse: JSON SSE 格式
  • cat: 仅消息内容 例如:
  journalctl -o json-pretty

过滤相关选项

  • 按用户标识过滤日志:
  journalctl _UID=<UID>

例如,查看 root 用户的日志:

  journalctl _UID=0
  • 按进程标识过滤日志:
  journalctl _PID=<PID>
  • 按路径过滤日志:
  journalctl /path/to/binary

例如,查看 sshd 可执行文件生成的日志:

  journalctl /usr/sbin/sshd

持续查看日志

  • 实时查看日志:
  journalctl -f

类似于 tail -f,用于实时查看日志的最新条目。

其他选项

  • 限制日志条数:
  journalctl -n <number>

例如,查看最近 100 条日志:

  journalctl -n 100
  • 查看日志大小:
  journalctl --disk-usage
  • 压缩日志:
  journalctl --vacuum-size=<size>

例如,将日志压缩到 1G:

  journalctl --vacuum-size=1G

实用案例

  1. 查看当前启动周期的所有错误日志:
   journalctl -b -p err
  1. 查看上一个启动周期的 SSH 服务日志:
   journalctl -b -1 -u sshd
  1. 查看特定时间段内的内核警告日志:
   journalctl -k --since "2024-06-10 08:00:00" --until "2024-06-10 12:00:00" -p warning
  1. 实时查看特定服务的日志:
   journalctl -u apache2 -f
  1. 以 JSON 格式查看最近 50 条日志:
journalctl -n 50 -o json-pretty

详细示例

示例 1:查看当前启动周期的所有日志

journalctl -b

此命令显示系统当前启动周期以来的所有日志,适用于一般性问题的初步诊断。

示例 2:查看上一个启动周期的内核错误日志

journalctl -k -b -1 -p err

此命令显示上一个启动周期内内核产生的所有错误级别的日志,有助于诊断系统在上一次启动过程中的内核问题。

示例 3:实时查看 SSH 服务的日志

journalctl -u sshd -f

此命令实时显示 SSH 服务的日志条目,适用于监控 SSH 服务的活动。

示例 4:查看特定时间段内的日志

journalctl --since "2024-06-10 08:00:00" --until "2024-06-10 12:00:00"

此命令显示在指定时间段内的所有日志,适用于分析特定时间段内发生的事件。

示例 5:查看特定用户的日志

journalctl _UID=1000

此命令显示由用户 ID 为 1000 的用户生成的所有日志,适用于跟踪和诊断特定用户的活动。

示例 6:压缩日志文件以释放磁盘空间

journalctl --vacuum-size=1G

此命令将日志文件压缩到 1GB 大小,有助于管理日志文件占用的磁盘空间。

示例 7:查看特定单元的详细日志

journalctl -u apache2 -o verbose

此命令以详细格式显示 Apache2 服务的日志,提供更全面的信息用于深入分析。

日志优先级级别

日志优先级从高到低依次为:

  • 0: emerg (紧急,系统不可用)
  • 1: alert (警报,需要立即处理)
  • 2: crit (严重,关键条件)
  • 3: err (错误)
  • 4: warning (警告)
  • 5: notice (通知,正常但重要)
  • 6: info (信息,正常消息)
  • 7: debug (调试信息)

使用注意事项

  1. 权限: journalctl 通常需要 root 权限或具有适当的 systemd-journal 组权限来访问所有日志。
   sudo journalctl -b
  1. 安全性: 日志可能包含敏感信息,应谨慎处理和共享。
  2. 性能: 对大日志文件的操作可能会影响系统性能,特别是在实时监控或过滤大量日志时。

总结

journalctl 是一个功能强大且灵活的日志查看和分析工具,适用于各种系统管理和故障排除任务。通过了解和使用 journalctl 的各种选项,管理员可以高效地查找、过滤和分析系统日志,快速定位问题根源并采取相应措施。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇