在 Debian 系统中,日志文件的位置和查看方式取决于你使用的 初始化系统(通常是 systemd)以及 具体服务。下面按常见情况给你梳理一下。
Debian 默认使用 systemd,日志由 systemd-journald 管理,不一定要看文件。
查看全部日志:
journalctl
查看本次启动的日志:
journalctl -b
查看某个服务的日志(如 ssh):
journalctl -u ssh
实时查看日志:
journalctl -f
日志默认在内存或
/var/log/journal/(如果已开启持久化)
即使使用 systemd,以下文件通常还在:
/var/log/syslog # 系统通用日志
/var/log/auth.log # 认证、登录、sudo、ssh
/var/log/kern.log # 内核日志
/var/log/dpkg.log # 软件安装、更新记录
/var/log/apt/ # apt 相关日志
/var/log/boot.log # 启动日志(不一定总有)
查看示例:
tail -f /var/log/syslog
tail -n 100 /var/log/auth.log
很多服务会把日志写到自己的目录:
/var/log/nginx/ # Nginx
/var/log/apache2/ # Apache
/var/log/mysql/ # MySQL
/var/log/postgresql/ # PostgreSQL
dmesg
或
journalctl -k
检查:
ls /var/log/journal
如果没有,说明日志只在内存中。
开启持久化:
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
传统日志文件由 rsyslog 生成:
dpkg -l | grep rsyslog
安装:
sudo apt install rsyslog
| 需求 | 命令 / 路径 |
|---|---|
| 看系统日志 | journalctl |
| 看登录认证 | /var/log/auth.log |
| 看系统事件 | /var/log/syslog |
| 看服务日志 | journalctl -u 服务名 |
| 看内核 | dmesg |
如果你愿意,可以告诉我:
cat /etc/debian_version)我可以给你更精确的命令。