linux系统日志通常位于/var/log/下,如debian/ubuntu的/var/log/syslog、rhel/centos的/var/log/messages;systemd系统优先用journalctl查看,传统文件可用tail -f实时监控、grep筛选、less浏览。

系统日志文件通常在哪?先确认路径再操作
Linux 系统日志默认由 rsyslog 或 systemd-journald 管理,传统日志多存于 /var/log/ 下。最常用的是:/var/log/syslog(Debian/Ubuntu)、/var/log/messages(RHEL/CentOS),以及服务专属日志如 /var/log/nginx/error.log、/var/log/auth.log(SSH 登录记录)。别直接猜路径,先用 ls -l /var/log/ | grep -E "(syslog|messages|auth)" 快速定位。
-
journalctl是 systemd 系统的首选,它不依赖文件路径,而是读取二进制日志流;而tail/cat/grep只能处理纯文本日志文件 - 如果
systemctl is-system-running返回running且系统是较新版本(如 Ubuntu 16.04+、CentOS 7+),优先考虑journalctl,否则才用文件命令
tail -f 实时看日志,但别一上来就加 -f
tail 最适合监控正在写入的日志,比如排查 Web 服务启动失败或 Nginx 报错。但新手常犯两个错:一是没加 -f 却以为在“实时看”,二是加了 -f 后卡住不知道怎么退出。
-
tail -n 20 /var/log/syslog:只看最后 20 行,适合快速检查最近动向 -
tail -f /var/log/auth.log:持续输出新增内容,按Ctrl+C退出(不是q) - 如果日志被轮转(如
syslog.1、syslog.2.gz),tail -f会停在旧文件末尾不动——此时需用journalctl -u ssh --since "1 hour ago"或解压后查zcat /var/log/auth.log.1.gz | grep "Failed password"
grep 筛选关键词,注意大小写和匹配边界
grep 是日志分析的核心,但默认区分大小写、不支持完整单词匹配,容易漏掉关键线索。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
grep "error" /var/log/messages会匹配到error、errors、stderr,甚至myerrorlog - 加
-i忽略大小写:grep -i "connection refused" /var/log/nginx/error.log - 加
-w匹配整词:grep -w "failed" /var/log/auth.log不会命中unsuccessful - 多条件组合更实用:
grep -i "denied|reject" /var/log/secure | grep -v "localhost"(排除本地测试干扰)
cat 适合小文件查看,大日志直接卡死
cat 本质是把整个文件内容一次性刷到终端,对日志来说几乎总是错的选择——除非文件小于 1KB。
-
cat /var/log/boot.log可行(通常很短),但cat /var/log/syslog可能输出数万行,终端卡顿、无法翻页、还可能触发 shell 缓冲区溢出 - 真要全文浏览,请改用
less /var/log/syslog(支持/keyword搜索、G到尾、g到头) - 如果非要用
cat配合grep,务必加管道限制输出:cat /var/log/messages | grep "Out of memory",但等效于grep "Out of memory" /var/log/messages,前者多一次进程开销
日志路径、是否启用 journald、轮转机制、权限(普通用户可能无权读 /var/log/secure)——这些细节比命令语法更容易导致“查不到日志”。动手前先 ls -l 看权限,file 看文件类型,systemctl status rsyslog 确认服务状态。










