在Linux系统中,日志文件是诊断系统问题、监控服务状态和追踪安全事件的核心工具,它们通常存储在/var/log/
目录下,包含系统日志(syslog
)、内核日志(kern.log
)、认证日志(auth.log
)及各类应用日志(如nginx/error.log
),以下是常用的日志查看命令及技巧:
-
cat
快速查看小型日志文件(不适用于大文件):cat /var/log/syslog
-
less
/more
分页查看大日志文件(支持上下翻页):less /var/log/kern.log # 推荐:可按 `/` 搜索关键字 more /var/log/auth.log # 按空格翻页
-
tail
查看日志末尾内容(默认显示最后10行):tail /var/log/nginx/error.log tail -n 20 /var/log/syslog # 显示最后20行
-
head
查看日志开头内容(默认显示前10行):head /var/log/boot.log head -n 50 /var/log/dpkg.log # 显示前50行
实时监控日志
tail -f
动态跟踪日志更新(故障排查常用):tail -f /var/log/apache2/access.log # 按 Ctrl+C 退出
增强版(高亮关键字):
tail -f /var/log/syslog | grep --color "error"
高级过滤与搜索
-
grep
按关键词过滤日志:grep "Connection refused" /var/log/syslog # 搜索错误 grep -i "warning" /var/log/kern.log # 忽略大小写 grep -C 5 "fail" /var/log/auth.log # 显示匹配行前后5行
-
时间范围过滤
结合sed
或awk
筛选特定时间段:awk '/May 15 10:00:/,/May 15 11:00:/' /var/log/syslog sed -n '/2025-05-15 09:00:/,/2025-05-15 10:00:/p' /var/log/nginx/access.log
-
多文件联合查询
使用通配符搜索多个日志文件:grep -r "timeout" /var/log/nginx/*.log # 递归搜索目录
处理轮转日志
Linux通过logrotate
自动压缩旧日志(如 syslog.1.gz
):
- 查看压缩日志:
zcat /var/log/syslog.1.gz # 直接解压显示 zgrep "error" /var/log/syslog.2.gz # 搜索压缩文件
专用日志工具
-
journalctl
(Systemd系统专用)
查看系统日志(支持高级过滤):journalctl -u nginx.service # 查看Nginx日志 journalctl --since "2025-05-15" # 按时间过滤 journalctl -p err -b # 本次启动的错误日志
-
dmesg
查看内核环形缓冲区日志(硬件/驱动问题):dmesg | grep "usb" dmesg -T # 显示可读时间戳
最佳实践建议
- 权限管理:普通用户需
sudo
访问系统日志(如/var/log/syslog
)。 - 日志定位:
- 系统问题 → 查看
/var/log/syslog
- 登录事件 → 检查
/var/log/auth.log
- 应用错误 → 定位应用专属目录(如
/var/log/mysql/error.log
)
- 系统问题 → 查看
- 安全分析:使用
ausearch
(Audit框架)审查安全日志。
引用说明: 基于Linux核心文档(The Linux Documentation Project)、Ubuntu手册及Red Hat系统管理指南,命令示例已在Ubuntu 22.04/CentOS 7+验证,兼容主流发行版,技术细节参考
man
手册(如man grep
)及开源社区最佳实践。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6622.html