命令速查debugging
journalctl:查询 systemd 日志
使用 journalctl 按本次启动、服务、时间和优先级筛选日志,定位服务与系统故障。
journalctl 读取 systemd journal 中的结构化日志。它可以把范围限定到某次启动、某个单元、时间窗口或日志优先级,比无条件输出全部日志更适合排障。
journalctl [选项] [匹配条件]unit=ssh.service
# 当前启动中该服务最近 100 条日志journalctl --boot=0 --unit="$unit" --lines=100 --no-pager
# 当前启动中的 warning 及更高优先级日志journalctl --boot=0 --priority=warning --no-pager
# 查看最近 30 分钟并持续跟随该服务的新日志;Ctrl+C 退出journalctl --unit="$unit" --since="30 min ago" --follow
# 查看 journal 当前磁盘占用journalctl --disk-usage每条记录通常包含时间、主机、进程或单元以及消息。没有结果不一定代表没有故障,还要核对启动范围、时间条件、权限和 journal 是否持久化。
风险与注意事项
Section titled “风险与注意事项”- 查询本身不修改系统,但日志可能含用户名、地址、路径、命令参数或应用数据;公开前必须脱敏。
- 普通用户只能读取被授权的日志。不要为了方便放宽 journal 文件权限;需要时使用受控的管理员权限查询。
--follow会持续运行,使用Ctrl+C正常退出。- 不要只截取最后一条错误;应保留同一时间窗口中的前因和服务退出状态。
该命令要求 systemd journal。日志是否跨重启保留取决于发行版和 journald 配置;精简系统可能只使用内核环形缓冲区或其他日志守护程序。