linuxsystemd日志查看是什么-journalctl 命令使用與實例

linux journalctl 命令


什么是 journalctl?

journalctl 是 linux 系統中用于查看和檢索 systemd 日志的高效工具。作為 systemd 的一部分,它實現了統一的日志管理系統,取代了傳統的 syslog 機制。

主要特性

  1. 二進制日志格式:采用二進制方式存儲日志,提升查詢效率
  2. 結構化信息支持:允許附加元數據和結構化字段
  3. 實時追蹤功能:可動態監控日志更新
  4. 靈活過濾機制:支持按時間、服務名、優先級等條件篩選日志

基本語法

journalctl 的命令結構如下所示:

journalctl [選項] [匹配條件...]

常見參數說明

參數 描述
`-b` 顯示當前系統啟動后的日志
`-f` 持續輸出新增日志(類似 tail -f)
`-k` 僅顯示內核相關消息
`-u` 查看指定單元的日志
`-n` 顯示最近的n條記錄
`–since` 篩選指定時間之后的日志
`–until` 篩選指定時間之前的日志

常用操作示例

1. 查看完整日志內容

示例

journalctl

2. 顯示本次開機產生的日志

示例

journalctl -b

3. 實時跟蹤日志變化

示例

journalctl -f

4. 查詢特定服務日志

示例

journalctl -u nginx.service

5. 按時間段篩選日志

示例

journalctl –since “2023-01-01 00:00:00” –until “2023-01-02 12:00:00”

6. 過濾錯誤級別日志

示例

journalctl -p err

日志優先級篩選

journalctl 提供基于優先級的過濾能力,具體等級定義如下:

等級 數值 描述
emerg 0 緊急事件
alert 1 需要立即處理
crit 2 嚴重錯誤
err 3 一般性錯誤
warning 4 警告信息
notice 5 需要注意的情況
info 6 常規信息
debug 7 調試信息

使用案例:

示例

# 查看錯誤及更高級別的日志
journalctl -p err

# 查看警告及以上級別的日志
journalctl -p warning

高級功能應用

1. 查看日志磁盤占用情況

示例

journalctl –disk-usage

2. 清理過期日志

示例

# 保留最近兩天內的日志
journalctl –vacuum-time=2d

# 將日志總大小限制為500MB
journalctl –vacuum-size=500M

3. 輸出json格式

示例

journalctl -o json

4. 展示完整字段詳情

示例

journalctl -o verbose

5. 根據字段精確過濾

示例

# 查看指定進程ID的日志
journalctl _PID=1234

# 查看某個用戶相關的日志
journalctl _UID=1000

實用技巧分享

1. 多條件組合查詢

示例

# 查詢nginx服務從昨天開始的錯誤日志
journalctl -u nginx.service –since yesterday -p err

2. 分頁瀏覽日志

示例

journalctl | less

3. 導出日志到文件

示例

journalctl –since “2023-01-01” > journal.log

4. 顯示內核環形緩沖區信息

示例

journalctl -k

5. 查看系統啟動過程中的日志

示例

journalctl -b0 | grep “Starting”

常見問題處理

問題一:日志內容顯示不全

解決方法

示例

# 取消分頁限制直接輸出
journalctl –no-pager

問題二:如何訪問舊的日志歸檔?

解決方法

示例

# 顯示所有日志包括歷史存檔
journalctl -a

問題三:精準查詢特定時刻的日志?

解決方法

示例

# 按秒級精度查詢日志
journalctl –since “2023-01-01 12:00:00” –until “2023-01-01 12:05:00”

流程圖總結

linuxsystemd日志查看是什么-journalctl 命令使用與實例

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享