在 Debian 系统中,日志的存放位置和查看方式取决于你使用的初始化系统(通常是 systemd)以及具体的日志类型。下面按常见情况给你说明。
使用 journalctl 查看 systemd 管理的日志:
# 查看全部日志
journalctl
# 实时查看日志
journalctl -f
# 查看本次启动的日志
journalctl -b
# 查看某个服务的日志
journalctl -u nginx
journalctl -u ssh
# 按时间查看
journalctl --since "2024-01-01 00:00:00"
journalctl --since "1 hour ago"
日志由 systemd-journald 管理,默认不一定写入文件,而是存于二进制文件:
/var/log/journal/
即使使用 systemd,很多程序仍会写文本日志:
/var/log/
├── syslog # 系统常规日志(rsyslog)
├── auth.log # 认证、登录、sudo、ssh
├── kern.log # 内核日志
├── dmesg # 开机内核信息
├── dpkg.log # 软件包安装/升级记录
├── apt/ # apt 操作日志
├── nginx/ # Nginx 日志
├── mysql/ # MySQL 日志
└── samba/ # Samba 日志
# 查看认证日志
tail -f /var/log/auth.log
# 查看系统日志
less /var/log/syslog
# 内核日志
dmesg
很多服务有自己的日志目录,例如:
/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/mysql/error.log
/var/log/redis/redis-server.log
# 查看启动信息
dmesg
# 开机日志(systemd)
journalctl -b
可能原因:
journald 且未开启文件存储logrotate 压缩(.gz)检查压缩日志:
ls /var/log/*.gz
zless /var/log/syslog.1.gz
| 场景 | 查看方式 |
|---|---|
| 系统启动问题 | journalctl -b |
| SSH 登录异常 | /var/log/auth.log |
| 某个服务出错 | journalctl -u 服务名 |
| 软件安装记录 | /var/log/dpkg.log |
| 网络/内核问题 | dmesg |
如果你能告诉我:
我可以给你更精确的命令。