如何在命令行中实时查看日志?

2025.5.29 杂七杂八 828

如何在命令行中实时查看日志? 杂七杂八-第1张

本文详细介绍5种命令行实时监控日志的高效方法,包括tail、less、multitail等工具的使用技巧,帮助开发者和运维人员快速定位系统问题,提升日志分析效率。

一、为什么需要实时查看日志?

在服务器运维和程序调试过程中,实时监控日志文件是快速发现问题、诊断错误的关键手段。相比反复手动打开日志文件,命令行工具可以提供持续更新的日志流,特别适合监控正在运行的应用程序或系统服务。

二、常用命令行日志监控工具

1. tail命令 – 基础实时监控

 基本用法(默认显示最后10行)
tail -f /var/log/nginx/access.log

 显示行数并高亮关键词
tail -n 50 -f /var/log/syslog | grep --color "error"

参数说明:
• -f 持续跟踪文件变化
• -n 指定显示行数
• grep可配合实现关键词过滤

2. less命令 – 交互式查看

less +F /var/log/auth.log

Shift+F进入实时跟踪模式,Ctrl+C退出跟踪后可进行常规搜索(/)和导航。

3. multitail – 多文件监控

 需要先安装(Ubuntu/Debian)
sudo apt install multitail

 同时监控两个日志文件
multitail -cS apache /var/log/apache2/access.log -cS syslog /var/log/syslog

优势:
• 分屏显示多个日志
• 支持颜色方案(-c)
• 内置正则过滤功能

4. lnav – 智能日志分析器

 安装(支持时间线视图和SQL查询)
sudo apt install lnav

 使用示例
lnav /var/log/nginx/.log

5. journalctl – 系统日志专用

 实时查看systemd日志
journalctl -f -u nginx.service

 显示最近1小时的关键错误
journalctl --since "1 hour ago" -p err

三、高级技巧

  • 日志着色: grep --color -E "error|fail|warning"
  • 时间过滤: sed -n '/2023-11-15 14:00/,/2023-11-15 15:00/p'
  • 网络监控: tcpdump -i eth0 | tee network.log

四、最佳实践建议

  1. 生产环境建议使用logrotate定期分割日志
  2. 重要日志添加| tee backup.log双重保存
  3. 长期监控建议使用专门的日志系统(ELK/Graylog)

评论