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

Linux 查看日志最常用、最高效的方式,就是 tail + grep + awk 这个组合。它不依赖图形界面,适合服务器环境,能快速定位问题、过滤噪音、提取关键字段。
服务正在运行时想看新产生的日志,用 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 行再持续追加。
光看最新几行不够?需要找特定内容,比如错误、某个 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 让关键词高亮更醒目。
很多日志是空格或空格+括号分隔的(如 Nginx access.log、systemd journal 输出),awk 能精准取字段:
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/ 包裹。
实际排障中,往往一步到位组合使用:
tail -n 500 /var/log/nginx/access.log | grep "192.168.1.100" | grep "404" | awk '{print $7}' | head -n 10
tail -n 300 app.log | grep -A 5 "Exception|Traceback" | awk -F':| ' '/py:/ {print $1 ":" $2}' | tail -n 3
awk '{print substr($4,2,15)}' access.log | sort | uniq -c | sort -nr | head -n 5
管道(|)是灵魂,把前一个命令输出变成后一个的输入,层层聚焦。
基本上就这些。不用记全参数,先掌握 tail -f、grep "关键词"、awk '{print $1,$3}' 这三个核心用法,再根据日志格式微调,就能覆盖 90% 的日常日志查看需求。
以上就是Linux 怎么查看日志?tail、grep、awk 最实用组合的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号