
journalctl 是 systemd 系统中查看和管理日志的核心命令,替代了传统的 /var/log/ 下分散的文本日志(如 syslog、messages),日志统一由 journald 服务收集并存储在二进制格式中,支持结构化查询、实时跟踪和权限保护。
查看基础日志
直接运行 journalctl 会输出全部日志(从最旧到最新),通常内容太多,建议搭配分页或筛选使用:
-
journalctl -n 50:只显示最近 50 行 -
journalctl -f:实时跟踪新增日志(类似tail -f) -
journalctl --since "2024-05-01" --until "2024-05-02":按时间范围过滤 -
journalctl --since "2 hours ago":支持相对时间表达式
按服务或进程过滤日志
定位问题时,常需聚焦某个服务(如 nginx、sshd)或 PID:
在线证件照系统是一套完善的冲印行业解决方案,致力于解决用户线上拍摄证件照,拍摄最美最标准证件照的使命。证件照免费版功能:后台统计:当天制作、当天新增、支持规格、近7日统计规格列表:筛选查看、编辑用户列表:筛选查看常见问题:筛选查看、新增、编辑、删除小程序设置:应用设置、流量主设置小程序跳转:筛选查看、新增、编辑、删除关注公众号:引导设置系统要求:系统:Linux系统(centos x64)运行环境
-
journalctl -u nginx.service:查看 nginx 单元的日志(含启动、重启、崩溃记录) -
journalctl _PID=1234:查指定进程 ID 的日志(下划线表示匹配内部字段) -
journalctl _COMM=sshd:按命令名过滤(如所有sshd进程产生的日志) -
journalctl -u sshd --no-pager | grep "Failed password":组合管道进一步筛选关键词
查看启动过程与引导日志
系统启动阶段的日志对排查开机失败、服务未启动等问题非常关键:
-
journalctl -b:仅显示本次启动后的日志 -
journalctl -b -1:显示上一次启动的日志(需启用持久化存储) -
journalctl -b -p err:本次启动中所有等级为err及以上的错误日志 -
journalctl -k:只显示内核环缓冲区日志(dmesg的 journal 版本)
持久化日志与磁盘空间管理
默认情况下,journald 日志只保存在内存或 /run/log/journal/(重启丢失)。如需长期保留,需启用持久化:
- 创建目录:
sudo mkdir -p /var/log/journal - 重启 journald:
sudo systemctl restart systemd-journald - 查看当前配置:
sudo journalctl --disk-usage(显示占用空间) - 清理旧日志:
sudo journalctl --vacuum-time=7d(保留最近 7 天)或--vacuum-size=500M
journalctl 功能强大但门槛略高,掌握几个常用选项就能覆盖绝大多数运维场景。关键是理解它基于结构化字段(如 _UNIT、_PID、PRIORITY)的查询逻辑,而不是正则匹配文本。









