在 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/syslog
logrotate
配置日志自动切割和压缩:/etc/logrotate.conf
或 /etc/logrotate.d/
根据需求选择命令:快速查看用 tail
/less
,分析用 grep
/awk
,系统服务用 journalctl
。