Linux 日志查看:journalctl 与 /var/log 一次讲清

举报
yd_283162409 发表于 2026/11/11 08:42:20 2026/11/11
【摘要】 日志在哪:先分清两套东西Linux 上查问题,第一步是找日志。日志分两套:传统文本日志在 /var/log 目录下,systemd 接管的日志由 journalctl 统一管理。新系统两者并存,知道去哪找,等于问题解决了一半。/var/log 里最常用的几个文件syslog(或 messages)是系统总日志,大多数服务的信息都往这里写;auth.log 记录登录、sudo、SSH 相关事件...

日志在哪:先分清两套东西

Linux 上查问题,第一步是找日志。日志分两套:传统文本日志在 /var/log 目录下,systemd 接管的日志由 journalctl 统一管理。新系统两者并存,知道去哪找,等于问题解决了一半。

/var/log 里最常用的几个文件

syslog(或 messages)是系统总日志,大多数服务的信息都往这里写;auth.log 记录登录、sudo、SSH 相关事件,查“谁登过、谁提权失败”就看它;kern.log 只记内核消息;dmesg 看的是开机以来的内核环形缓冲,硬件、驱动问题先看它。还有各服务的专属日志,比如 Nginx 的 access.log 与 error.log,都在各自目录下。

看文本日志最顺手的还是老三样:tail -f /var/log/syslog 实时跟随,grep -i error /var/log/syslog 过滤关键字,less 翻页慢慢看。日志文件会被 logrotate 定期切割压缩,旧日志变成 .gz,用 zgrep 直接查,不用先解压。

journalctl:systemd 时代的主力

用 systemd 的发行版,服务的输出默认进了 journal,不再单独写文件。最常用的几条命令要记熟:journalctl -u nginx 只看某个服务的日志;journalctl -f 实时跟随,和 tail -f 一个意思;journalctl --since "2026-11-11 08:00" --until "2026-11-11 09:00" 按时间段过滤;journalctl -p err 只看错误级别以上,噪音立刻少一大半;journalctl -b 只看本次开机以来的日志,排查启动失败最方便。

journal 日志默认存在内存里,重启就丢。想持久化,建一个目录就行:mkdir -p /var/log/journal,然后重启 systemd-journald,日志就会落盘,重启后也能查。磁盘占用可以用 journalctl --disk-usage 看,journalctl --vacuum-size=500M 一键清理到指定大小。

排障时的固定套路

服务起不来,先 systemctl status xxx 看一眼,再 journalctl -u xxx -n 50 看最后 50 行,九成问题出在配置写错或端口被占。磁盘满了,先 du -sh /var/log/* 看哪个日志在疯长,再决定清还是修。登录异常,先 grep "Failed password" /var/log/auth.log 看暴力破解的痕迹。

一句话:日志不是出了事才想起的东西,平时就养成 tail -f 和 journalctl -f 随手看的习惯,出问题时你比别人快十分钟。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。