码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 告别 "cd /var/log" !用 journalctl 统一掌控 Linux 日志


    目录

    • 为什么要用 journalctl?
    • 核心功能速查
      • 1. 精准定位服务日志
      • 2. 实时监控(替代 tail -f)
      • 3. 时间范围筛选(杀手锏)
    • 进阶实战技巧
      • 结合 grep 进行关键词过滤
      • 输出为 JSON(便于程序处理)
      • 禁用分页(用于脚本)
    • 总结

     


    你是否曾经在服务器宕机时,手忙脚乱地在 /var/log/messages、/var/log/syslog和应用程序的自定义日志目录之间来回切换?

    如果你还在用这种“考古式”的方法查日志,那么今天介绍的 journalctl 将彻底改变你的工作方式。它是 Systemd 自带的日志查看神器,让你告别目录迷宫,一站式搞定所有日志分析。

    回到顶部

    为什么要用 journalctl?

    在 Systemd 统治主流 Linux 发行版的今天,几乎所有服务都由 Systemd 管理。journalctl的核心优势在于统一视图和结构化查询。

    传统方式 journalctl 方式
    需要切换到 /var/log目录 无需关心日志文件存储位置
    使用 cat, less, tail -f组合拳 一条命令查看所有服务日志
    跨文件查询极其困难 强大的过滤器和时间轴
    回到顶部

    核心功能速查

    下面我们直接进入实战,看看如何用几条命令解决日常运维 90% 的问题。

    1. 精准定位服务日志

    以前查 Nginx 报错,你得去 /var/log/nginx/找;查 MySQL,又得去别的地方。现在,不管什么服务,只要它跑在 Systemd 上:

    # 查看 Nginx 服务的所有日志
    journalctl -u nginx
    
    # 查看 MySQL 服务的所有日志
    journalctl -u mysql
    

    这条命令会自动聚合该服务从安装到现在的所有日志,并按时间顺序排列。

    2. 实时监控(替代 tail -f)

    需要盯着日志看实时请求吗?-f参数是你的好帮手:

    # 实时追踪 Docker 服务的日志
    journalctl -u docker -f
    

    这比 tail -f更强大,因为它不仅实时,还能结合后面的过滤条件。

    3. 时间范围筛选(杀手锏)

    这是 journalctl最好用的功能之一。再也不用计算日志滚动了多少次,直接用自然语言查询:

    # 查看今天的日志
    journalctl --since today
    
    # 查看昨天的日志
    journalctl --since yesterday
    
    # 查看过去一小时的日志
    journalctl --since "1 hour ago"
    
    # 查看指定时间段(非常适合排查事故时间点)
    journalctl --since "2024-01-01 00:00:00" --until "2024-01-02 12:00:00"
    
    回到顶部

    进阶实战技巧

    掌握了基础,我们再来看看如何提升效率。

    结合 grep 进行关键词过滤

    虽然 journalctl自带过滤,但配合 grep依然是最顺手的:

    journalctl -u nginx | grep "500 Internal Server Error"
    

    输出为 JSON(便于程序处理)

    如果你在做自动化运维,想要结构化数据:

    journalctl -u nginx -o json
    

    禁用分页(用于脚本)

    当你把日志结果通过管道传给其他工具时,关闭分页器:

    journalctl --no-pager -u nginx
    
    回到顶部

    总结

    journalctl不仅仅是一个日志查看工具,它是 Linux 系统可观测性的重要一环。通过掌握 -u(服务)、-f(实时)、--since(时间)这三个核心参数,你可以将故障排查的时间缩短一半。

    建议: 下次登录服务器时,试着忘掉 /var/log,从 journalctl开始你的排查之旅吧!

  • 相关阅读:
    网络编程概述及Http协议
    如何保护 LDAP 目录服务中的用户安全?
    yyyy-MM-dd‘T‘HH:mm:ssZ的T是什么意思?为什么要用单引号引着
    大厂面试必备 - async/await 详解
    全网独有windows10安装hadoop2.2.0
    【云原生】容器编排工具Kubernetes
    JavaScript 中的 Range 和 Selection 对象
    公众号openApi管理
    【Python高级编程】图表类型指南:何时使用折线图、散点图、柱状图和饼状图
    基于自适应Sigmoid型函数的内镜图像增强与空间变颜色再现方法
  • 原文地址:https://www.cnblogs.com/ydswin/p/20166185
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号