最常用、最轻量的实时日志查看方式是sudo tail -f /var/log/syslog,适用于Ubuntu系统级事件调试;但更推荐用journalctl(如journalctl -b或journalctl -p err..emerg),因其更可靠、实时且字段完整。

直接用 sudo tail -f /var/log/syslog 实时看最新日志
这是最常用、最轻量的启动方式。Ubuntu 默认把系统级事件(服务启停、网络配置变更、软件包安装等)都记进 /var/log/syslog,tail -f 能持续输出新增条目,适合调试正在运行的服务或观察刚执行的操作效果。
注意:普通用户无权读该文件,必须加 sudo;如果终端卡住没反应,可能是当前没新日志产生,不是命令出错。
journalctl 比 cat /var/log/syslog 更可靠
Ubuntu 从 16.04 起默认启用 systemd,journald 是实际的日志收集器,/var/log/syslog 只是它的文本副本——可能延迟几秒、缺字段、甚至为空(取决于 rsyslog 配置是否启用转发)。
推荐替代方案:
-
journalctl -o short-iso:带 ISO 时间戳的可读格式,比原始 syslog 更整齐 -
journalctl -b:只看本次启动以来的日志,避免混入上次残留 -
journalctl -p err..emerg:聚焦错误及以上级别,跳过大量 info 日志
cat /var/log/syslog | grep error——它容易漏掉没落盘的实时错误。
查旧日志得用 zgrep,不是 grep
/var/log/syslog 会被 logrotate 自动轮转压缩,比如你看到 syslog.1.gz、syslog.2.gz,这时 grep "Failed" /var/log/syslog.1.gz 会直接输出二进制乱码。
正确做法:
-
zgrep "Failed password" /var/log/auth.log.1.gz(同理适用于syslog.*.gz) -
zcat /var/log/syslog.2.gz | head -n 50:解压后取前 50 行快速浏览 - 时间范围难定位?先用
ls -lt /var/log/syslog*看文件修改时间,再针对性查
权限拒绝不是 bug,是设计
执行 sudo tail -f /var/log/syslog 报错 Permission denied?大概率是因为你用了错误的 sudo 方式:
- ❌
sudo tail -f /var/log/syslog(正确) - ✅
sudo tail -f /var/log/syslog(正确) - ❌
sudo tail -f /var/log/syslog(正确)
/var/log/syslog 在 Ubuntu 上存在,但如果你在 RHEL/CentOS 机器上照搬,就会发现文件根本不存在(那里叫 /var/log/messages)。确认发行版再动手,比反复试权限更省时间。


















