【帮助中心】Linux 日志排查教程,tail 结合 grep 实时查看、筛选服务器日志

2026-10-14 04:41:00丨 发布者:云天域--技术

云服务器部署网站或者程序,出现 500 报错、接口异常时,日志是排查问题最重要的依据。Linux 中 tail 用于读取日志文件末尾内容,搭配 grep 过滤关键词,可以快速检索报错信息,是运维排查故障的常用组合命令。

一、tail 基础用法

tail 命令默认读取文件最后 10 行内容。

# 查看日志最后10行
tail /var/log/nginx/access.log

# 查看日志最后50行
tail -n 50 /var/log/nginx/error.log

# -f 实时监听日志,日志新增内容会持续输出(最常用)
tail -f /var/log/nginx/error.log

二、tail + grep 组合筛选日志

实时查看日志,只抓取包含指定关键词的记录,比如搜索 error 报错:

# 实时监控日志,只输出带有error的行
tail -f /var/log/nginx/error.log | grep error

# 忽略大小写搜索,Error、ERROR都可以匹配
tail -f /var/log/nginx/error.log | grep -i error

三、常用场景示例

# 一次性查找日志文件里面所有404记录
grep "404" /var/log/nginx/access.log

# 搜索关键词,并且显示匹配行前后5行上下文
grep -C5 "500" /var/log/nginx/error.log

四、日志文件位置参考

  • Nginx 访问日志:/var/log/nginx/access.log
  • Nginx 错误日志:/var/log/nginx/error.log
  • 系统日志:/var/log/messages

五、排查日志小技巧

  1. 使用tail -f实时跟踪日志,复现网站报错的时候,可以同步观察输出
  2. 日志文件过大,不要直接 cat 读取全部文件,容易占用大量内存
  3. 查找历史报错,直接用 grep 检索整个日志文件
  4. 日志长期堆积占用磁盘空间,可以结合前面学到的 find 命令定期清理

六、常见问题

  1. 提示没有权限读取日志:需要 root 或者 sudo 权限执行命令
  2. 日志文件轮转后,tail -f 可能读取旧文件,需要重新执行命令
  3. 关键词尽量精简,不要写过长搜索词,避免匹配不到结果

总结

tail 负责实时查看日志新增内容,grep 负责过滤关键词。网站报错、程序异常排查时,这组命令可以快速定位错误原因,是云服务器运维必不可少的日志排查工具。