温馨提示×

Ubuntu syslog怎么查看历史

小樊
38
2026-07-31 17:11:55
栏目: 智能运维

在 Ubuntu 里查看 syslog 历史记录,主要分几种情况:看当前日志、看已轮转的历史日志、以及用 journalctl(systemd 接管后更常用)。下面按常见场景说明。


一、查看当前 syslog(实时 / 最近)

1️⃣ 直接查看 syslog 文件

cat /var/log/syslog

或分页查看:

less /var/log/syslog

2️⃣ 实时查看(类似 tail -f)

tail -f /var/log/syslog

二、查看历史 syslog(已轮转的日志)

Ubuntu 默认会用 logrotate 对日志进行轮转,历史文件通常是:

/var/log/syslog.1
/var/log/syslog.2.gz
/var/log/syslog.3.gz
...

查看未压缩的历史日志

less /var/log/syslog.1

查看 .gz 压缩的历史日志

zless /var/log/syslog.2.gz

或:

zcat /var/log/syslog.2.gz | less

三、使用 journalctl(推荐,systemd 系统

Ubuntu 16.04 及以后基本都用 systemd,日志由 systemd-journald 管理。

1️⃣ 查看所有历史日志(按时间倒序)

journalctl

2️⃣ 实时查看

journalctl -f

3️⃣ 查看某一天的日志

journalctl --since "2025-01-20" --until "2025-01-21"

4️⃣ 查看某服务的历史日志

journalctl -u ssh
journalctl -u nginx

5️⃣ 查看重启前的日志

journalctl --boot=-1

四、查看内核日志(dmesg)

如果是历史内核问题(如死机、OOM、驱动):

dmesg

查看上一次启动的 dmesg(systemd):

journalctl -k --boot=-1

五、快速定位问题常用组合

按时间查 syslog

grep "Jan 20" /var/log/syslog

查某 IP / 错误

grep -i "error" /var/log/syslog
grep "192.168.1.10" /var/log/syslog

六、如果 /var/log/syslog 不存在?

可能是:

  • 使用了 systemd-journald 且未开启 rsyslog
  • 在 Ubuntu 22.04+ 某些最小化安装中

检查:

ls /var/log/
systemctl status rsyslog

启动 rsyslog:

sudo systemctl enable --now rsyslog

总结(最常用)

实时tail -f /var/log/syslog
历史zless /var/log/syslog.2.gz
现代方式journalctl -u 服务名

如果你是想查 某次宕机 / 登录失败 / OOM / Docker / 网络异常,可以告诉我具体场景,我可以给你更精准的命令。

0