在 Linux 系统中查看系统日志主要通过以下几种方式,具体取决于发行版和日志管理系统:
journalctl
(systemd 系统)大多数现代 Linux 发行版(如 Ubuntu、CentOS 7+、Fedora)使用 systemd
,日志由 journald
管理:
# 查看完整日志(按时间倒序)
journalctl
# 查看内核日志
journalctl -k
# 查看指定服务的日志(如 sshd)
journalctl -u sshd
# 实时跟踪最新日志(类似 tail -f)
journalctl -f
# 按时间筛选(如最近1小时)
journalctl --since "1 hour ago"
# 按优先级过滤(如仅显示错误)
journalctl -p err
如果系统使用 rsyslog
或 syslog-ng
,日志通常存储在 /var/log/
目录下:
# 常见日志文件
/var/log/syslog # 通用系统日志(Ubuntu/Debian)
/var/log/messages # 通用系统日志(RHEL/CentOS)
/var/log/auth.log # 认证相关日志(如 SSH 登录)
/var/log/kern.log # 内核日志
/var/log/boot.log # 系统启动日志
# 使用 cat/less/tail 查看
tail -f /var/log/syslog # 实时跟踪
less /var/log/auth.log # 分页查看
dmesg
查看内核日志# 查看内核环形缓冲区日志(硬件、驱动相关)
dmesg
# 实时监控新内核消息
dmesg -w
某些服务(如 Apache、Nginx)有独立的日志文件:
# Web 服务器日志示例
/var/log/nginx/access.log
/var/log/apache2/error.log
日志文件会被 logrotate
自动归档,可通过以下方式查看历史日志:
ls /var/log/ # 查看归档日志(如 syslog.1.gz)
zcat /var/log/syslog.1.gz # 解压查看压缩日志
# 筛选包含关键字的日志(如 "error")
journalctl | grep -i error
grep -i error /var/log/syslog
# 查看日志占用的磁盘空间
du -sh /var/log/
/var/log/secure
)。logrotate
)避免磁盘占满。根据你的具体需求选择合适的方法,排查问题时建议优先使用 journalctl
或检查 /var/log/
下的相关文件。