Linux 日志入门:五个命令读懂服务器的"心声"

举报
yd_250942226 发表于 2026/10/23 09:08:57 2026/10/23
【摘要】 服务器不会说话,但日志记录了一切。本文介绍 tail -f、grep、less、journalctl、dmesg 五个命令,从实时跟踪、关键字过滤到内核排查,带你读懂服务器的“心声”,快速定位线上问题。

服务器不会说话,但它把发生过的每一件事都记进了日志。服务起不来、接口突然变慢、磁盘半夜被占满——与其对着黑屏发呆,不如学会读日志。今天分享五个最实用的日志命令,零基础也能上手。

一、tail -f:实时盯住日志“直播”

tail 用来查看文件末尾,-f 参数让它像直播一样持续跟随新增内容。

# 看最后 50 行
tail -n 50 /var/log/nginx/error.log

# 实时跟随,服务一报错立刻看到
tail -f /var/log/nginx/error.log

排查线上问题时,我习惯开一个终端专门跑 tail -f,复现问题的同时观察日志输出,效率翻倍。

二、grep:从海量日志里捞出关键行

日志动辄几十万行,靠眼睛翻不现实。grep 按关键字过滤,是日志排查的“筛子”:

# 忽略大小写找 error
grep -i "error" app.log

# 显示匹配行的前后 3 行,还原现场
grep -C 3 "Exception" app.log

# 反向过滤,把烦人的 DEBUG 噪音去掉
grep -v "DEBUG" app.log

组合技:tail -f app.log | grep --line-buffered "ERROR",实时只看报错行。

三、less:翻看大文件的正确姿势

cat 直接甩出几万行会把终端卡死,less 支持分页和搜索:

less app.log

进入后:/ 输入关键字搜索,n 跳下一个,N 跳上一个,G 直达末尾,q 退出。分析历史日志时,less + / 是我的标配。

四、journalctl:systemd 时代的统一日志

现在多数发行版用 systemd 管理服务,日志统一进了 journal。journalctl 不用记日志路径:

# 看某个服务的日志
journalctl -u nginx.service

# 实时跟随 + 只看今天 + 只看报错级别
journalctl -u myapp -f --since today -p err

注意 journal 默认存在内存里,重启会丢。想持久化可以在 /etc/systemd/journald.conf 里把 Storage 设为 persistent。

五、dmesg:倾听内核的“心声”

应用日志查不出问题时,往往是内核层面出了事:硬件故障、驱动异常、内存被 OOM Killer 干掉……dmesg 看的就是内核环形缓冲区:

# 人性化时间显示,看最后 30 行
dmesg -T | tail -30

# 找 OOM 杀进程的记录
dmesg -T | grep -i "out of memory"

有一次服务莫名重启,应用日志干干净净,最后在 dmesg 里看到内存耗尽、进程被内核杀掉——真相大白。

实战串联:一次 502 排查

上周遇到 Nginx 报 502,排查路径是这样的:

  1. tail -f /var/log/nginx/error.log 看到上游连接超时;
  2. journalctl -u backend -f 发现后端服务一直在重启;
  3. grep -A 10 "Traceback" backend.log 抓到启动时的异常堆栈;
  4. dmesg -T | tail 确认不是 OOM,纯粹是配置写错了端口。

五个命令接力,十分钟定位。

速查表

命令 场景 常用参数
tail -f 实时跟踪日志 -n 行数,-f 跟随
grep 关键字过滤 -i 忽略大小写,-C 上下文,-v 反选
less 翻看/搜索大文件 / 搜索,n/N 跳转,q 退出
journalctl systemd 服务日志 -u 服务名,-f 跟随,–since 时间
dmesg 内核日志 -T 可读时间,配合 grep

结语

日志是服务器留给我们的“黑匣子”。与其出问题靠重启碰运气,不如把这五个命令练熟:tail -f 看直播,grep 做筛选,less 翻历史,journalctl 管服务,dmesg 听内核。多读日志,少走弯路。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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