温馨提示×

Debian日志怎么查看历史

小樊
53
2026-07-12 17:04:00
栏目: 智能运维

在 Debian(以及大多数 Linux 系统)中,查看历史日志主要依赖 systemd-journaldrsyslog 两类日志系统。下面按常见场景给你一个完整说明。


一、使用 journalctl(推荐,systemd 系统)

Debian 8 及以后默认使用 systemd,日志由 systemd-journald 管理。

1️⃣ 查看所有历史日志(从最早开始)

journalctl

空格 翻页,q 退出。


2️⃣ 查看本次启动前的日志

journalctl -b -1
  • -b:指定启动
  • -1:上一次启动
  • -2:上上次启动(依此类推)

3️⃣ 查看某个时间段的日志

journalctl --since "2025-01-01" --until "2025-01-10"

或:

journalctl --since "2 days ago"

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

journalctl -u nginx
journalctl -u ssh

查看某服务上一次启动的日志:

journalctl -u nginx -b -1

5️⃣ 查看内核历史日志

journalctl -k

6️⃣ 按优先级查看(如只看错误)

journalctl -p err

优先级:

  • emerg
  • alert
  • crit
  • err
  • warning
  • notice
  • info
  • debug

二、使用 /var/log/ 下的传统日志文件

如果系统安装了 rsyslog,历史日志通常以文件形式存在。

常见日志位置

/var/log/syslog        # 系统日志(Debian 特有)
/var/log/messages      # 部分系统有
/var/log/auth.log      # 登录、sudo、SSH
/var/log/kern.log      # 内核日志
/var/log/dpkg.log      # 软件安装/卸载
/var/log/apt/history.log

查看历史日志文件

less /var/log/syslog

查看被轮转(压缩)的历史日志

Debian 默认会轮转日志:

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

查看 .gz 日志:

zless /var/log/syslog.2.gz

三、日志为什么会“消失”?

1️⃣ journal 日志大小有限

查看当前限制:

journalctl --disk-usage

清理旧日志(谨慎):

journalctl --vacuum-time=7d

2️⃣ 日志轮转(logrotate)

Debian 使用 logrotate 自动压缩、删除旧日志。

配置位置:

/etc/logrotate.conf
/etc/logrotate.d/

四、常用组合示例

查看昨天 SSH 登录失败记录

journalctl -u ssh --since "yesterday" | grep Failed

或:

grep "Failed" /var/log/auth.log

查看某次宕机前的日志

journalctl -b -1 -p err

五、如果你不确定用哪种方式

先执行:

which journalctl
  • ✅ 有 → 优先用 journalctl
  • ❌ 没有 → 看 /var/log/

如果你能说明:

  • Debian 版本(cat /etc/debian_version
  • 想查 哪类日志(宕机、SSH、服务、安装软件、内核)
  • 是否 服务器 / 桌面

我可以给你更精确的命令。

0