本文详细介绍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
四、最佳实践建议
- 生产环境建议使用
logrotate
定期分割日志 - 重要日志添加
| tee backup.log
双重保存 - 长期监控建议使用专门的日志系统(ELK/Graylog)
评论