Linux 下常用日志查询工具
journalctl
journalctl 是 systemd 的日志管理工具,用于查询 systemd 的日志管理系统 (journal) 中的日志。它整合了系统和服务的所有日志信息。
常用命令:
- 查看全部日志:
journalctl
- 查看最新日志并持续监控
journalctl -f
- 查看本次启动的日志:
journalctl -b
- 查看特定服务的日志:
journalctl -u ssh # SSH服务
journalctl -u nginx # Nginx服务
- 按时间过滤:
journalctl --since "2024-01-01"
journalctl --since "1 hour ago"
- 查看特定优先级的日志:
journalctl -p err # 错误级别
journalctl -p info # 信息级别
- 查看内核日志
journalctl -k
dmesg
dmesg 主要用于查看内核环形缓冲区(kernel ring buffer)的消息,包含以下主要类型的日志:
- 硬件相关;
- cpu
- memory
- sda
- usb
- pci
- 驱动程序信息;
- eth
- wifi
- nvidia
- audio
- 系统启动信息;
注意:
- dmesg 只显示内核消息
- 重启后环形缓冲区会清空
- 需要 root 权限查看完整信息
/var/log/syslog
/var/log/syslog
包含以下类型的系统日志:
- 系统组件日志:
- 系统启动消息
- 守护进程活动
- 定时任务执行记录
- 系统服务状态变化
- 系统进程信息
- 硬件相关:
- 硬件检测信息
- 设备连接/断开事件
- 硬件错误报告
- 驱动程序消息
- 软件应用:
- 应用程序启动/关闭
- 程序错误消息
- 应用crash信息
- 软件更新记录
- 网络相关:
- 网络接口状态
- 网络连接事件
- DHCP事务
- 网络服务消息
journalctl 包含了 /var/log/syslog 中的所有信息。
/var/log/syslog
/var/log/messages
是 Red Hat/CentOS 系统中的主要系统日志文件(相当于 Ubuntu/Debian 中的 /var/log/syslog
)。
last
显示登录历史