首页 > 运维 > linux运维 > 正文

Linux 怎么查看日志?tail、grep、awk 最实用组合

舞夢輝影
发布: 2025-12-04 20:22:02
原创
704人浏览过
Linux查看日志最常用高效方式是tail+grep+awk组合:tail实时跟踪(如tail -f /var/log/syslog),grep条件筛选(如grep "Failed password"),awk提取字段(如awk '{print $1,$7,$9}'),三者管道串联可精准定位问题、过滤噪音、提取关键信息。

linux 怎么查看日志?tail、grep、awk 最实用组合

Linux 查看日志最常用、最高效的方式,就是 tail + grep + awk 这个组合。它不依赖图形界面,适合服务器环境,能快速定位问题、过滤噪音、提取关键字段。

实时跟踪最新日志(tail -f)

服务正在运行时想看新产生的日志,用 tail -f 最直接:

  • tail -f /var/log/syslog —— Ubuntu/Debian 系统的综合日志
  • tail -f /var/log/messages —— CentOS/RHEL 的系统消息日志
  • tail -f /var/log/nginx/access.log —— 实时观察 Nginx 访问请求

Ctrl+C 可退出跟踪。加 -n 50(如 tail -n 50 -f)可先显示最近 50 行再持续追加。

带条件筛选日志行(grep 配合 tail 或 cat)

光看最新几行不够?需要找特定内容,比如错误、某个 IP 或接口路径:

  • tail -n 200 /var/log/auth.log | grep "Failed password" —— 查最近 200 行中的登录失败记录
  • grep "500" /var/log/nginx/error.log | tail -n 10 —— 找出所有 500 错误,再取最后 10 条
  • zgrep "Connection refused" /var/log/syslog.1.gz —— 直接搜索压缩过的旧日志(需 gzip 支持)

-i 忽略大小写,-v 反向匹配(排除某类日志),--color=always 让关键词高亮更醒目。

提取结构化字段(awk 拆解日志列)

很多日志是空格或空格+括号分隔的(如 Nginx access.log、systemd journal 输出),awk 能精准取字段:

AIBox 一站式AI创作平台
AIBox 一站式AI创作平台

AIBox365一站式AI创作平台,支持ChatGPT、GPT4、Claue3、Gemini、Midjourney等国内外大模型

AIBox 一站式AI创作平台 224
查看详情 AIBox 一站式AI创作平台
  • awk '{print $1, $7, $9}' /var/log/nginx/access.log —— 提取 IP、请求路径、状态码(默认空格分隔)
  • journalctl -u nginx | awk -F' ' '{print $1,$2,$3,$NF}' —— 用空格切分 systemd 日志,打印时间+最后一列(通常是状态)
  • awk -F'\[|\]|"' '/ERROR/ {print $2, $4}' app.log —— 自定义分隔符(中括号和引号),提取 ERROR 行里的时间和模块名

注意:字段编号从 $1 开始;$NF 表示最后一列;正则匹配用 /pattern/ 包裹。

三者串联,解决典型排查场景

实际排障中,往往一步到位组合使用:

  • 查某 IP 最近 10 次 404 请求:
    tail -n 500 /var/log/nginx/access.log | grep "192.168.1.100" | grep "404" | awk '{print $7}' | head -n 10
  • 看 Python 应用报错堆的最后一段(含文件名和行号):
    tail -n 300 app.log | grep -A 5 "Exception|Traceback" | awk -F':| ' '/py:/ {print $1 ":" $2}' | tail -n 3
  • 统计每分钟访问量(假设第一列是 [12/Jan/2024:14:23:05):
    awk '{print substr($4,2,15)}' access.log | sort | uniq -c | sort -nr | head -n 5

管道(|)是灵魂,把前一个命令输出变成后一个的输入,层层聚焦。

基本上就这些。不用记全参数,先掌握 tail -fgrep "关键词"awk '{print $1,$3}' 这三个核心用法,再根据日志格式微调,就能覆盖 90% 的日常日志查看需求。

以上就是Linux 怎么查看日志?tail、grep、awk 最实用组合的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号