Linux 中查询日志的常用命令有很多,下面整理了一份详细且实用的日志查看和分析命令合集,帮助你快速定位问题和监控系统状态。
1. cat
— 查看整个日志文件内容
cat /var/log/syslog
适合小文件,直接输出所有内容到终端,不分页。
2. less
/ more
— 分页浏览日志文件
less /var/log/syslog
或者
more /var/log/syslog
支持分页滚动,方便阅读大文件,less
支持向前和向后翻页,推荐使用。
3. tail
— 查看日志文件的尾部内容(实时监控)
tail -n 100 /var/log/syslog
查看最后100行日志。
tail -f /var/log/syslog
实时输出新增日志(适合实时监控日志更新)。
4. head
— 查看日志文件的开头部分
head -n 50 /var/log/syslog
显示日志文件开头的50行。
5. grep
— 搜索匹配关键词的日志行
grep "error" /var/log/syslog
查找包含“error”的日志行。
结合管道更强大:
tail -f /var/log/syslog | grep "failed"
实时过滤包含“failed”的日志输出。
6. awk
/ sed
— 按需提取和处理日志字段
示例:提取时间字段和错误信息
awk '/error/ {print $1, $2, $3, $0}' /var/log/syslog
7. journalctl
— 查看 systemd 管理的日志(现代 Linux 发行版)
查看所有日志:
journalctl
查看最近启动日志:
journalctl -b
实时跟踪日志:
journalctl -f
查看指定服务日志:
journalctl -u nginx.service
查看某个时间段日志:
journalctl --since "2025-06-01" --until "2025-06-15"
8. dmesg
— 查看内核缓冲区日志(启动和硬件相关日志)
dmesg | less
实时查看内核信息:
dmesg --follow
9. find
+ xargs
/ grep
— 批量查找日志内容
例如查找所有日志文件中包含“error”的行:
find /var/log -type f -name "*.log" | xargs grep "error"
10. 日志文件路径常见位置
/var/log/syslog
— 系统日志(Debian系)/var/log/messages
— 系统日志(RedHat系)/var/log/auth.log
— 认证相关日志/var/log/kern.log
— 内核日志/var/log/dpkg.log
— Debian软件包管理日志/var/log/nginx/access.log
和/var/log/nginx/error.log
— Nginx日志
小技巧:
- 配合
grep -i
忽略大小写。 - 使用
grep -A 5
查看匹配行后5行内容,方便跟踪上下文。 - 结合
tail -n 1000
限制搜索范围,避免搜索太多旧日志。
如果你需要,我可以帮你写一些日志分析脚本或者监控日志变化的自动化方案。需要吗?
发表回复