在Linux系统中查看日志是系统管理和故障排查的重要操作,以下是三种最常用的日志查看命令及其典型应用场景:
tail
- 查看日志尾部(实时监控)tail -n 20 /var/log/syslog # 查看文件末尾20行
tail -f /var/log/nginx/access.log # 实时追踪日志更新(Ctrl+C退出)
特点:
- 默认显示最后10行,通过-n
指定行数。
- -f
(follow)参数可实时监控日志追加内容,适合调试服务。
- 结合grep
过滤关键信息:
bash
tail -f /var/log/syslog | grep "error"
less
- 交互式分页查看less /var/log/auth.log # 分页查看日志(支持搜索/翻页)
操作快捷键:
- /keyword
:向前搜索关键词(按n
跳转到下一个匹配)
- ?keyword
:向后搜索
- 空格
:向下翻页,b
向上翻页
- G
:跳转到文件末尾,gg
回到开头
- q
:退出
优势:
- 适合大文件快速定位,避免cat
一次性加载的卡顿问题。
journalctl
- 查看systemd日志(现代Linux系统)journalctl -u nginx.service # 查看指定服务的日志
journalctl -f # 实时滚动日志(类似tail -f)
journalctl --since "2023-10-01" --until "1 hour ago" # 时间范围筛选
关键参数:
- -u
:按服务单元过滤
- -p err
:按日志级别(如err、warning)
- --disk-usage
:查看日志占用的磁盘空间
bash
sed -n '/Oct 10 09:00:00/,/Oct 10 10:00:00/p' /var/log/syslog
bash
grep -c "ERROR" /var/log/app.log
bash
cat /var/log/*.log | grep "pattern"
选择建议:
- 实时监控用 tail -f
+ grep
- 历史日志分析用 less
+ 搜索
- systemd服务日志用 journalctl
- 超大日志文件考虑先用 grep/awk
过滤再查看