我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • git

  • composer

  • linux

    • Linux
    • ssh
    • rsync上传本地文件到服务器
    • windows上使用multipass挂载本地文件
    • curl命令使用
    • 查询系统版本及硬件信息的
    • 操作linux上用户
    • crontab使用
    • systemctl使用
    • journalctl使用
      • 基本用法
      • 主要命令和选项
      • 查询特定服务的日志
        • 1. 查看 MySQL 服务的日志
        • 2. 查看 Nginx 服务的日志
        • 3. 查看 PHP-FPM 服务的日志
        • 4. 查看 Elasticsearch 服务的日志
      • 结合使用选项
        • 更多组合示例
      • 其他实用选项
      • 总结
    • ls查看文件及排序
    • 查询命令行日志记录
    • less详细使用
    • Vim使用案例
    • top的基本使用
  • nginx

  • docker

  • vpn

  • frp

  • 脚本

  • 硬件

  • 运维
  • linux
窝窝侠
2024-11-19

journalctl使用

以下是对 journalctl 的详细使用指导,包括查询 MySQL、Nginx、PHP 和 Elasticsearch (ES) 日志的示例,以及每个参数的多个使用案例。

# 使用 journalctl 查询日志

journalctl 是用来查询和管理 systemd 日志的命令行工具,能够访问系统启动、服务状态、应用程序错误等信息。下面是如何使用 journalctl 查询日志的详细指导。

# 基本用法

journalctl [OPTIONS]
1

# 主要命令和选项

  • -b: 显示当前启动后的所有日志。

    使用案例:

    1. 查看当前启动后的所有日志:
      journalctl -b
      
      1
    2. 查看上一次启动后的所有日志:
      journalctl -b -1
      
      1
  • -e: 显示日志的最后部分。

    使用案例:

    1. 查看日志的最后 50 行:
      journalctl -e -n 50
      
      1
  • -f: 实时跟踪最新日志(类似于 tail -f)。

    使用案例:

    1. 实时跟踪所有日志:
      journalctl -f
      
      1
    2. 实时跟踪 Nginx 服务的日志:
      journalctl -u nginx.service -f
      
      1
  • -n <number>: 显示最近的 <number> 条日志。

    使用案例:

    1. 查看最近的 100 条日志:
      journalctl -n 100
      
      1
    2. 查看最近的 50 条 MySQL 日志:
      journalctl -u mysql.service -n 50
      
      1
  • --since: 仅显示指定时间之后的日志。

    使用案例:

    1. 查看从 2023 年 10 月 1 日 12:00 之后的日志:
      journalctl --since "2023-10-01 12:00:00"
      
      1
    2. 查看从今天早上以来的所有日志:
      journalctl --since today
      
      1
  • --until: 仅显示指定时间之前的日志。

    使用案例:

    1. 查看到 2023 年 10 月 1 日 12:00 之前的日志:
      journalctl --until "2023-10-01 12:00:00"
      
      1
    2. 查看到昨天的所有日志:
      journalctl --until yesterday
      
      1
  • -u <unit>: 显示特定服务的日志。

    使用案例:

    1. 查看 MySQL 服务的日志:
      journalctl -u mysql.service
      
      1
    2. 查看 Nginx 服务的日志:
      journalctl -u nginx.service
      
      1
  • --priority: 根据优先级过滤日志(如 info, warning, error 等)。

    使用案例:

    1. 查看所有警告级别的日志:
      journalctl --priority=warning
      
      1
    2. 查看所有错误级别的日志:
      journalctl --priority=err
      
      1
  • --grep <pattern>: 仅显示包含指定模式的日志行。

    使用案例:

    1. 查找包含“error”的日志:
      journalctl --grep "error"
      
      1
    2. 查找包含“failed”的日志:
      journalctl --grep "failed"
      
      1

# 查询特定服务的日志

# 1. 查看 MySQL 服务的日志

journalctl -u mysql.service
1
  • 实时跟踪 MySQL 日志:
journalctl -u mysql.service -f
1
  • 查看过去 24 小时的 MySQL 错误日志:
journalctl -u mysql.service --since "24 hours ago" --priority=err
1

# 2. 查看 Nginx 服务的日志

journalctl -u nginx.service
1
  • 实时跟踪 Nginx 日志:
journalctl -u nginx.service -f
1
  • 查看 Nginx 日志中包含“error”的行:
journalctl -u nginx.service --grep "error"
1

# 3. 查看 PHP-FPM 服务的日志

journalctl -u php-fpm.service
1
  • 实时跟踪 PHP-FPM 日志:
journalctl -u php-fpm.service -f
1
  • 查看过去 24 小时的 PHP-FPM 日志:
journalctl -u php-fpm.service --since "24 hours ago"
1

# 4. 查看 Elasticsearch 服务的日志

journalctl -u elasticsearch.service
1
  • 实时跟踪 Elasticsearch 日志:
journalctl -u elasticsearch.service -f
1
  • 查看过去 24 小时的 Elasticsearch 错误日志:
journalctl -u elasticsearch.service --since "24 hours ago" --priority=err
1

# 结合使用选项

可以组合多个选项以更精确地查询日志。例如,查看 nginx 服务中包含“error”的所有日志:

journalctl -u nginx.service --grep "error"
1

# 更多组合示例

  • 查看过去 1 小时内的 MySQL 警告和错误日志:
journalctl -u mysql.service --since "1 hour ago" --priority=warning
1
  • 查看 Elasticsearch 服务中包含“timeout”的日志:
journalctl -u elasticsearch.service --grep "timeout"
1

# 其他实用选项

  • --no-pager: 直接输出日志内容,不使用分页显示。

    journalctl --no-pager
    
    1
  • --output <format>: 更改输出格式,例如 short, json, cat 等。

    journalctl --output json
    
    1

# 总结

journalctl 是一个强大的工具,用于查看和管理 systemd 日志。通过灵活使用其命令和选项,可以轻松查询到系统的运行状态、服务问题及其他重要日志信息。掌握这些命令将有助于更好地进行系统管理和故障排查。

在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54
systemctl使用
ls查看文件及排序

← systemctl使用 ls查看文件及排序→

最近更新
01
showprocess用法
04-29
02
vue3中尖括号和冒号的使用细则
04-29
03
sd使用
02-22
更多文章>
🖥️

© 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×