Linux 的系统日志(syslog)存放在哪里?
Linux 常见文本系统日志位于 /var/log,具体文件取决于 syslog 配置;journal 也可能仅存于 /run/log/journal;systemd 系统还可用 journalctl 查看。本文列出各发行版路径对照。
常见文本日志在/var/log下,但journal也可只存在/run/log/journal等易失存储,具体位置因部署而异——Ubuntu/Debian 是 /var/log/syslog,RHEL/CentOS 是 /var/log/messages,systemd 系统还可以用 journalctl 命令直接查询。
各发行版对照
| 发行版 | 系统日志文件 |
|---|---|
| Ubuntu / Debian | 安装并配置syslog守护进程时常见/var/log/syslog |
| RHEL / CentOS / Fedora | 传统配置常见/var/log/messages,journal-only部署可能没有 |
| systemd 通用 | journalctl(二进制日志,不在文本文件里) |
常用相关文件
/var/log/auth.log(Ubuntu)//var/log/secure(RHEL):登录认证;/var/log/kern.log:内核日志;/var/log/dmesg:启动与硬件信息;/var/log/nginx/、/var/log/mysql/:各应用自己的子目录。
journalctl 用法
journalctl -u nginx.service # 看某服务的日志
journalctl --since "1 hour ago" # 按时间过滤
journalctl -f # 实时滚动
常见问题(FAQ)
Q:/var/log 下没有 syslog 文件? 可能是极简系统没装 rsyslog(apt install rsyslog),或系统纯用 systemd-journald。
Q:日志会自动清理吗? 文本日志常由logrotate及/etc/logrotate.d规则管理,周期/保留数量因包和配置而异;journal由journald自己的容量/时间策略管理。