温馨提示×

怎么检索linux特定日志

小樊
36
2026-10-17 03:42:20
栏目: 智能运维

在 Linux 中“检索特定日志”通常分三种场景:系统日志(journalctl)、文本日志文件(grep/awk)、按时间/关键字/服务过滤。下面按实用方式给你总结。


一、使用 systemd 日志(推荐,现代 Linux)

适用于 CentOS 7+/Ubuntu 16.04+

1. 查看某服务的日志

journalctl -u nginx
journalctl -u sshd

2. 实时查看

journalctl -u nginx -f

3. 按时间检索

journalctl --since "2024-01-01 00:00:00" --until "2024-01-02 00:00:00"
journalctl --since "1 hour ago"

4. 按关键字检索

journalctl | grep "error"
journalctl -u nginx | grep "404"

5. 按优先级(错误日志)

journalctl -p err

二、检索日志文件(传统方式)

常见路径:

  • /var/log/messages
  • /var/log/syslog
  • /var/log/nginx/access.log
  • /var/log/nginx/error.log

1. 基本检索(grep)

grep "ERROR" /var/log/syslog
grep -i "timeout" /var/log/messages

2. 显示行号

grep -n "failed" /var/log/auth.log

3. 多关键字(与 / 或)

# 同时包含
grep "error" /var/log/syslog | grep "nginx"

# 或关系
grep -E "error|warn" /var/log/syslog

4. 实时追踪

tail -f /var/log/nginx/access.log
tail -F /var/log/nginx/error.log

5. 查看某时间段

sed -n '/2024-01-01 10:00/,/2024-01-01 11:00/p' /var/log/nginx/access.log

三、高级检索技巧

1. 统计出现次数

grep -c "404" /var/log/nginx/access.log

2. 提取某一列(awk)

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c

3. 检索压缩日志

zgrep "error" /var/log/messages-*.gz

4. 多文件批量检索

grep -r "OutOfMemory" /var/log/

四、常见实用示例

# 查看 SSH 登录失败
grep "Failed password" /var/log/auth.log

# 查看 Nginx 5xx 错误
grep " 500 " /var/log/nginx/access.log

# 最近 100 行错误
journalctl -p err -n 100

如果你能告诉我:

  • 使用的是 哪种 Linux(CentOS / Ubuntu)
  • 想查 什么日志(系统 / Nginx / 应用)
  • 按 时间 / 关键字 / 错误级别

我可以直接给你一条“可复制即用”的命令。

0 踩