系统日志对于 Linux 系统的健康运行和故障排除至关重要。本文将介绍一些常见的 Linux 系统日志分析命令,帮助您更好地管理和维护您的系统。
dmesg
dmesg 命令显示内核环形缓冲区中的所有内核消息。它通常用于查看系统启动期间的错误和信息。例如,以下命令将显示 dmesg 输出的最后 50 行:
dmesg | tail -50
journalctl
journalctl 命令用于管理和查看 systemd 日志。它是一个比 syslog 更现代且高效的日志记录系统。您可以使用以下命令查看主系统日志:
journalctl
要过滤特定应用程序或服务的日志,请使用 --unit 选项。例如,以下命令显示 Apache Web 服务器的日志:
journalctl --unit=apache2
grep
grep 命令是一个强大的文本搜索工具,可用于过滤日志文件中的特定模式或文本。例如,以下命令查找包含 "error" 的 syslog 日志:
grep error /var/log/syslog
sed
sed 命令是一个流编辑器,可用于操作管道中的文本数据。它常用于从日志文件中提取特定字段或格式化输出。例如,以下命令提取 syslog 日志中的时间戳:
sed 's/.*\s\+\([0-9:.]\+\)\s+.*/\1/' /var/log/syslog
awk
awk 命令是一种脚本语言,可用于从日志文件中提取特定字段或执行复杂的处理。例如,以下命令提取 syslog 日志中的 IP 地址和 HTTP 请求 :
awk 'BEGIN { FS=" " } { print $9, $12 }' /var/log/syslog