网站首页 > 基础教程 正文
1 什么是 journalctl?
journalctl 是 systemd 的一部分,用于查看由 systemd-journald 收集的日志数据。systemd-journald 会收集内核、服务、标准输出、标准错误以及应用程序的日志信息,并统一管理、存储。
相比传统的 syslog + tail 方式,journalctl 提供了更强大的过滤、格式控制和时间跳转能力。
2 基础用法
2.1 查看所有日志
# 打印所有级别的日志
journalctl
默认按时间顺序输出所有日志,可能非常长。
2.2 实时查看日志(相当于 tail -f)
journalctl -f
适合监控服务运行状态,实时滚动显示最新日志。
2.3 查看系统启动日志
journalctl -b
-b 参数表示查看当前启动周期的日志。-x参数显示详细信息:
journalctl -xb
# 过滤报错信息
journalctl -xb |grep -i error
2.4 按时间范围过滤日志
journalctl --since "2025-04-20 09:00" --until "2025-04-23 12:00"
journalctl --since "2 hours ago"
3 强大的过滤机制
3.1 按服务过滤日志
journalctl -u docker.service
journalctl -u nginx.service
可以看到 nginx 服务的所有日志。
3.2 查看特定 PID 的日志
journalctl _PID=1234
3.3 按用户 ID 过滤
journalctl _UID=1000
3.4 查看内核日志(类似 dmesg)
journalctl -k
4 日志持久化配置
4.1 默认日志是临时的吗?
journal产生的日志默认是临时,有些 Linux 发行版默认日志存储在 /run/log/journal/,属于非持久化,重启就没了。
4.2 如何开启日志持久化?
sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl restart systemd-journald
重启后日志就会存储在 /var/log/journal/,永久保存。
5 管理日志空间
修改 /etc/systemd/journald.conf,添加如下配置:
SystemMaxUse=500M # 日志文件最大空间
SystemKeepFree=100M # 至少保留这么多磁盘空间
SystemMaxFileSize=100M # 单个日志文件最大大小
SystemMaxFiles=10 # 最多保留几个文件
配置后重启服务生效:
sudo systemctl restart systemd-journald
6 按日志级别过滤
journalctl -p err # 显示错误及以上级别日志
journalctl -p warning # 显示警告及以上级别日志
日志级别一览(数字/名称):
数值 | 名称 | 说明 |
0 | emerg | 紧急,系统不可用 |
1 | alert | 需立刻处理 |
2 | crit | 严重 |
3 | err | 错误 |
4 | warning | 警告 |
5 | notice | 正常但重要信息 |
6 | info | 一般信息 |
7 | debug | 调试信息 |
journalctl 是一个功能强大的工具,用于查询和管理系统日志。通过合理使用其选项,你可以方便地查看、过滤和分析日志信息。
- 上一篇: 为什么明明删除了文件,磁盘空间却没有释放?
- 下一篇: Linux系统网站出现503错误提示怎么解决?
猜你喜欢
- 2025-05-22 Linux cron任务计划
- 2025-05-22 测试人员如何在linux服务器中查询mysql日志?
- 2025-05-22 Nginx命令最全详解(29个最常用命令)
- 2025-05-22 初识自动化网络编排器NSO,轻松配置复杂的多厂商网络
- 2025-05-22 Nacos在企业生产中如何使用集群环境?
- 2025-05-22 如何从 MySQL 错误日志中排查数据库故障
- 2025-05-22 Linux面试最高频的5个基本问题
- 2025-05-22 linux网卡混杂模式
- 2025-05-22 Linux环境下Java应用的部署与优化
- 2025-05-22 Linux系统网站出现503错误提示怎么解决?
- 05-22Linux cron任务计划
- 05-22测试人员如何在linux服务器中查询mysql日志?
- 05-22Nginx命令最全详解(29个最常用命令)
- 05-22初识自动化网络编排器NSO,轻松配置复杂的多厂商网络
- 05-22Nacos在企业生产中如何使用集群环境?
- 05-22如何从 MySQL 错误日志中排查数据库故障
- 05-22Linux面试最高频的5个基本问题
- 05-22linux网卡混杂模式
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)