温馨提示×

Linux如何搜索日志内容

小樊
46
2026-08-17 18:19:12
栏目: 智能运维

在 Linux 中搜索日志内容,常用的方法取决于日志类型搜索复杂度以及是否需要实时查看。下面按常见场景给你一个实用总结。


一、最常用:用 grep 搜索日志内容

1️⃣ 基本搜索

grep "error" /var/log/messages

2️⃣ 忽略大小写

grep -i "error" /var/log/messages

3️⃣ 显示行号

grep -n "error" /var/log/messages

4️⃣ 递归搜索(整个目录)

grep -r "error" /var/log

5️⃣ 显示匹配行的上下文

grep -C 5 "error" app.log   # 前后各5行
grep -A 5 "error" app.log  # 后5行
grep -B 5 "error" app.log  # 前5行

二、结合时间范围搜索(非常常见)

日志通常带时间,例如:

2024-01-21 10:30:00 INFO ...

搜索某段时间

grep "2024-01-21 10:" app.log

使用正则

grep -E "2024-01-21 (10|11):" app.log

三、查看实时日志(tail + grep)

实时查看日志

tail -f /var/log/app.log

实时过滤关键词

tail -f app.log | grep "error"

四、使用 less 浏览并搜索(大文件推荐)

less app.log

less 中:

  • /error → 向下搜索
  • ?error → 向上搜索
  • n → 下一个结果
  • q → 退出

适合超大日志文件,不会一次性加载


五、systemd 日志(journalctl)

如果日志由 systemd 管理:

查看某个服务日志

journalctl -u nginx

实时查看

journalctl -u nginx -f

按时间

journalctl --since "2024-01-21 10:00" --until "2024-01-21 11:00"

搜索关键字

journalctl | grep "error"

六、按日志级别或字段搜索(进阶)

搜索 ERROR 或 WARN

grep -E "ERROR|WARN" app.log

统计出现次数

grep -c "error" app.log

七、常见日志路径速查

类型 路径
系统日志 /var/log/messages/var/log/syslog
认证日志 /var/log/secure
Nginx /var/log/nginx/error.log
Docker docker logs 容器名
Java 应用 catalina.out / app.log

八、实际示例(推荐组合)

✅ 查找最近 1 小时内的错误:

journalctl --since "1 hour ago" | grep -i error

✅ 搜索并导出:

grep "NullPointerException" app.log > error.txt

如果你愿意,可以告诉我:

  • 日志是 Java / Nginx / Docker / 系统日志 哪种?
  • 想搜 时间范围 / 关键字 / 报错类型

我可以帮你写一条最精准的命令

0