如何快速查看系统日志最后20行

tail 命令:实时查看日志末尾

作用:默认显示文件最后10行,适合追踪最新日志。
常用参数

  • -n <行数>:指定显示的行数(-n 20 显示最后20行)。
  • -f:实时追踪日志更新(按 Ctrl+C 退出)。

示例

# 实时追踪Nginx访问日志
tail -f /var/log/nginx/access.log

journalctl 命令:查看Systemd日志

适用场景:使用Systemd的系统(如Ubuntu 16.04+、CentOS 7+)。
关键参数

  • -e:跳转到日志末尾。
  • -f:实时追踪。
  • --since "时间":按时间过滤(--since "10 minutes ago")。

示例

# 查看系统服务的最新日志(末尾100行)
journalctl -e -n 100
# 实时追踪内核日志
journalctl -f -k

grep 管道过滤:快速定位关键信息

作用:结合 tail 过滤特定关键词(如错误、IP地址)。
示例

# 查看最近100条包含 "error" 的日志
tail -n 100 /var/log/syslog | grep -i "error"
# 实时追踪并过滤SSH登录记录
tail -f /var/log/auth.log | grep "sshd"

lessmore:交互式浏览大日志文件

技巧

  • less 打开文件后,按 Shift+G 跳转到文件末尾。
  • 使用 反向搜索关键词(?error 从末尾向上搜索)。

示例

less /var/log/kern.log  # 打开后按 Shift+G

处理轮转日志(Log Rotation)

背景:日志文件可能被压缩归档(如 syslog.1.gz)。
解决方案

  • 使用 zcatzless 查看压缩文件:
    zcat /var/log/syslog.1.gz | tail -n 20
  • 通过 logrotate 配置确认轮转规则:
    cat /etc/logrotate.conf  # 查看全局配置

组合命令进阶用法

  • 查看最近5分钟内的日志
    journalctl --since "5 min ago"
  • 统计最新日志中的错误频率
    tail -n 1000 /var/log/syslog | grep "error" | sort | uniq -c

关键目录与日志文件

日志文件 用途
/var/log/syslog 通用系统日志(Debian/Ubuntu)
/var/log/messages 系统日志(RHEL/CentOS)
/var/log/auth.log 认证与安全日志
/var/log/nginx/*.log Nginx服务日志
/var/log/mysql/error.log MySQL错误日志

最佳实践建议

  1. 权限管理:普通用户需 sudo 访问系统日志(sudo tail /var/log/syslog)。
  2. 实时监控:用 tail -f 替代频繁手动查看。
  3. 日志切割:定期清理旧日志,避免磁盘占满(通过 logrotate 配置)。
  4. 集中管理:生产环境推荐使用 ELK(Elasticsearch, Logstash, Kibana)或 rsyslog 集中收集日志。

引用说明基于Linux核心工具手册(man tailman journalctl)及系统管理实践,参考了Linux文档项目(tldp.org)和Systemd官方指南(freedesktop.org),具体命令参数请以系统手册为准(man <命令>)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4595.html

(0)
酷番叔酷番叔
上一篇 2025年6月15日 20:53
下一篇 2025年6月15日 21:37

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信