当前位置: 首页 > news >正文

上位机知识篇---Linux日志

在 Linux 系统中,运行日志就像系统和应用程序的 “日记”,会详细记录各种事件(比如启动、错误、用户操作等)。理解日志的作用、位置和查看方法,能帮你快速排查问题、监控系统状态,甚至发现安全隐患。下面从作用、存放位置、查看方法到实用技巧,一步步讲清楚。

一、运行日志的核心作用

简单说,日志是系统和应用的 “行为记录”,主要有 3 个核心作用:

  1. 排查问题:当服务启动失败(比如 nginx 没起来)、程序崩溃时,日志里会记录具体错误原因(比如 “端口被占用”)。
  2. 监控系统:实时查看日志能知道系统状态(比如 “磁盘满了”“内存不足”),提前发现异常。
  3. 安全审计:记录用户登录、权限变更等操作(比如 “有人尝试暴力破解密码”),方便追溯安全事件。

二、日志文件存放在哪里?

Linux 的日志文件几乎都集中在 /var/log/ 目录下(可以理解为 “系统日志仓库”)。这里有很多按功能分类的日志文件,常用的有这些:

日志文件路径记录内容适用场景举例
/var/log/syslog系统综合日志(大部分系统事件,如服务启动 / 停止、进程错误)找系统级别的错误(如 “防火墙启动失败”)
/var/log/auth.log认证相关日志(用户登录、sudo 操作、ssh 登录尝试等)查 “谁登录过服务器”“有没有暴力破解”
/var/log/kern.log内核日志(内核启动、硬件驱动错误、内存问题等)排查硬件相关问题(如 “显卡驱动崩溃”)
/var/log/messages通用消息日志(比 syslog 更简洁,包含系统正常运行的信息)快速了解系统近期状态
/var/log/dpkg.log软件包管理日志(安装 / 卸载 / 更新 deb 包的记录,如 apt 操作)查 “之前装了什么软件”“更新失败原因”
/var/log/nginx/access.logNginx 服务器访问日志(谁访问了网站、访问时间、URL 等)分析网站访问量、异常请求
/var/log/nginx/error.logNginx 错误日志(请求失败、配置错误等)排查 “网站打不开” 的原因
/var/log/secure(CentOS/RHEL 系统)类似 auth.log,记录认证和安全事件CentOS 系统查登录记录

三、如何查看日志?常用工具和操作

查看日志的工具很多,从简单的 “直接读内容” 到 “实时监控”“关键词过滤”,按需选择即可。

1. 基础查看:直接读日志内容

适合快速看日志的部分内容,常用命令:

  • cat 日志文件:一次性显示整个日志内容(适合短日志)。
    例:cat /var/log/messages → 查看系统近期的通用消息。

  • head -n 数字 日志文件:只看日志的前 N 行(比如前 10 行)。
    例:head -n 10 /var/log/auth.log → 看最近 10 条登录相关记录。

  • tail -n 数字 日志文件:只看日志的后 N 行(最新的记录,常用)。
    例:tail -n 20 /var/log/kern.log → 看最近 20 条内核事件。

2. 实时监控:日志更新时自动显示

当服务运行中(比如网站、数据库),想实时看新产生的日志(比如用户刚访问网站的记录),用 tail -f

  • 命令:tail -f 日志文件-f = follow,“跟踪” 日志更新)。
    例:tail -f /var/log/nginx/access.log → 实时显示新的网站访问记录(按Ctrl+C退出)。
3. 关键词过滤:快速找目标内容

日志通常很长,直接看太费劲,用 grep 过滤关键词(比如 “错误”“失败”):

  • 命令:grep "关键词" 日志文件(区分大小写,加-i忽略大小写)。
    例 1:查 “登录失败” 的记录:grep "Failed" /var/log/auth.log → 找出所有包含 “Failed” 的行(比如暴力破解尝试)。
    例 2:查 “nginx 错误”:grep -i "error" /var/log/nginx/error.log-i让 “Error”“ERROR” 都能被找到)。

  • 进阶:结合tail实时过滤。比如实时看 nginx 的错误:tail -f /var/log/nginx/error.log | grep -i "error"

4. 翻页查看:长日志慢慢看

如果日志很长(比如几个 G),cat会一次性刷完屏幕,用 less 或 more 翻页看:

  • 命令:less 日志文件(按Enter下一行,空格下一页,q退出,/关键词搜索)。
    例:less /var/log/syslog → 慢慢翻系统综合日志,按/error直接搜 “error” 关键词。
5. 系统日志管理工具:journalctl(适用于 systemd 系统)

现在大部分 Linux 发行版(如 Ubuntu 16.04+、CentOS 7+)用systemd管理系统,日志由journald统一管理,用 journalctl 查看更方便:

  • 基础用法:journalctl → 显示所有日志(按时间倒序,最新的在最后)。
  • 常用参数:
    • journalctl -u 服务名:只看某个服务的日志(比如journalctl -u nginx → nginx 的所有日志)。
    • journalctl -f:实时监控新日志(类似tail -f)。
    • journalctl --since "1小时前":查看 1 小时内的日志(也可以写具体时间,如--since "2024-05-01 08:00")。

四、日志不会无限变大?日志轮转(logrotate)

日志会不断产生,时间长了会占满磁盘。Linux 用 logrotate 自动 “管理” 日志:按时间或大小切割日志(比如每天切一个新文件)、压缩旧日志、删除超期日志(比如只保留 30 天的)。

  • 配置文件位置:/etc/logrotate.d/(每个服务的日志轮转规则在这里,比如/etc/logrotate.d/nginx是 nginx 的日志规则)。
  • 简单理解:就像写日记,一本写满了换一本,旧的日记打包收起来,太久的就扔掉,避免桌面堆太多。

五、实用场景举例

  1. 服务启动失败:比如systemctl start nginx提示失败,用journalctl -u nginxgrep "nginx" /var/log/syslog找错误原因(比如 “端口被占用”)。
  2. 查谁登录过服务器:看/var/log/auth.log,用grep "Accepted" auth.log找成功登录的记录(包含用户名、IP)。
  3. 系统突然卡了:看/var/log/kern.logjournalctl -k(内核日志),可能有 “内存不足”“硬盘 IO 错误” 等记录。

总结:日志是 Linux 的 “黑匣子”,遇到问题先查日志,大部分答案都在里面。记住/var/log/目录和tail -fgrep这两个工具,基本能解决 80% 的问题~

http://www.dtcms.com/a/334179.html

相关文章:

  • Python基础语法 从入门到精通
  • MATLAB基础训练实验
  • GitHub PR 提交流程
  • 车载控制器硬件电路-各电源轨和功能模块定义以及作用
  • 从冒泡到快速排序:探索经典排序算法的奥秘(二)
  • 【Qt开发】常用控件(四)
  • 适合2D而非3D的游戏
  • 链表。。。
  • YOLOv5、YOLOv8的损失函数、正负样本匹配策略和anchor_free/anchor_base的差异对比
  • 免费数独游戏,多难度等级挑战
  • 存储设备的核心单位:扇区、页与块
  • CentOS 7 一键部署 上Maria Database(MariaDB)10.3.38 安装手册(避开 Oracle 19c 路径)
  • 北京JAVA基础面试30天打卡11
  • JetPack系列教程(八):PDF库——让Android应用也能优雅“翻页”
  • ESP32 C3 开发板使用教程 01-测试显示屏
  • 【系统分析师】软件需求工程——第11章学习笔记(下)
  • Android 移动端 UI 设计:前端常用设计原则总结
  • 【Docker项目实战】使用Docker部署Notepad轻量级记事本
  • vscode中使用CMake Tools生成compile_commands.json文件后,如何告诉clangd这个文件在哪里呢?
  • MySQL 基础操作与编码设置:从入门到避坑
  • 范式转移:AI幻觉的终结与GPT-5的“可信”架构设计
  • 《解耦的艺术:Python 观察者模式在 GUI 与事件驱动中的实战》
  • 音视频学习(五十四):基于ffmpeg实现音频重采样
  • 【科普向-第一篇】数字钥匙生态全景:手机厂商、车厂与协议之争
  • GPFS集群性能压测
  • C++编程学习阶段性总结
  • 2025年生成式引擎优化(GEO)服务商技术能力评估报告
  • 企业运维规划及Linux介绍虚拟环境搭建
  • ROS相关的ubuntu基础教程
  • 神经网络 常见分类