在 Linux 系统中查看日志的常用命令和技巧如下,根据场景选择合适的方法:
cat
直接显示整个文件内容(适合小文件):
cat /var/log/syslog
less / more
分页查看日志(推荐 less,支持上下滚动):
less /var/log/nginx/error.log
空格 翻页,/关键词 搜索,q 退出。tail
查看日志尾部(默认显示最后 10 行):
tail /var/log/auth.log
-f):tail -f /var/log/apache2/access.log
tail -n 100 /var/log/syslog
head
查看日志头部(默认前 10 行):
head /var/log/kern.log
grep
按关键词过滤日志(支持正则表达式):
grep "error" /var/log/syslog
grep -i "error"grep -A 3 -B 2 "error"(显示匹配行前后 3/2 行)journalctl
查看 systemd 管理的服务日志(适用于现代 Linux 发行版):
journalctl -u nginx.service # 查看指定服务日志
journalctl --since "2023-10-01" # 按时间过滤
journalctl -f # 实时追踪
awk / sed
提取特定字段或格式化日志:
awk '{print $1, $5}' /var/log/nginx/access.log # 输出第1和第5列
multitail
同时监控多个日志文件(需安装):
multitail /var/log/nginx/access.log /var/log/nginx/error.log
| 日志类型 | 路径示例 |
|---|---|
| 系统日志 | /var/log/syslog 或 /var/log/messages |
| 认证日志 | /var/log/auth.log |
| 内核日志 | /var/log/kern.log |
| Apache/Nginx | /var/log/apache2/error.log 或 /var/log/nginx/error.log |
| MySQL | /var/log/mysql/error.log |
| 系统启动日志 | /var/log/boot.log |
bash
tail -f /var/log/syslog | grep -i "error"bash
grep -c "error" /var/log/sysloglogrotate 配置日志自动切割和压缩:/etc/logrotate.conf 或 /etc/logrotate.d/根据需求选择命令:快速查看用 tail/less,分析用 grep/awk,系统服务用 journalctl。