深入探究journalctl命令:多角度解析查看和管理 Linux 日誌

一、journalctl基本介紹

journalctl 是Linux系統的一個系統日誌查看工具。使用 journalctl 命令可以查看系統日誌並進行過濾和排序。它能夠讀取系統日誌存儲在文件系統中的二進制格式,並支持諸如進程ID、單元或其他標準日誌記錄字段的過濾器。同時,它還提供了豐富的格式選項,以便輕鬆查看和管理日誌。

默認情況下,journalctl 會顯示最近一個工作日的記

二、journalctl常用參數

1. -u, –unit

-u(或者 --unit= )參數可以過濾日誌記錄的單元(systemd Unit)。如果要查找特定單元的日誌記錄,可以使用以下命令:

journalctl -u nginx.service 

上述命令顯示 nginx.service 的所有日誌記錄。如果要按逆序排序,則使用以下命令:

journalctl -u nginx.service -r

2. -f, –follow

-f 選項會實時地跟蹤日誌,而不是只顯示最新的日誌文件,這會非常有用。例如,如果要監視系統日誌,以便及時掌握有關任何系統異常的信息,則可以使用以下命令:

journalctl -f 

上述命令將按實時更新跟蹤日誌。

3. -n, –lines

-n 選項會顯示指定的最近日誌條數。例如,如果要查看前20個日誌條目,請使用以下命令:

journalctl -n 20 

4. -k, –dmesg

-k 選項會顯示內核消息。例如,以下命令將顯示與內核消息相關的所有日誌記錄:

journalctl -k

如果只想查看最新的10個內核消息,請使用以下命令:

journalctl -k -n 10 

三、journalctl高級用法

1. 自定義時間戳格式

journalctl 默認使用 RFC 3339 格式的時間戳,例如:2021-08-28T06:30:57.953662+08:00。如果想要使用不同的時間戳格式,則需要使用 --output= --since= 選項來自定義輸出。例如,以下命令將跟蹤從三小時前直到現在的各個記錄,並使用自定義的時間戳格式(YYYY-MM-DD hh:mm:ss)輸出:

 journalctl --since "3 hours ago" --until "now" --output=short-precise 

2. 查找關鍵字

journalctl 可以通過 grep 和正則表達式查找具有特定單詞和短語的日誌條目,使用 --grep= --regex= 選項。例如,以下命令將顯示包含單詞「error」的所有日誌記錄:

 journalctl --grep="error"

3. 按字段查詢特定記錄

journalctl 可以根據記錄的不同字段來查找特定記錄。使用-f 或 --field= 選項,其後接着查詢的值來完成查詢。例如,以下命令將搜索日誌記錄,查找其中的日誌來源(以 MESSAGE_ID_FIELD=SYSLOG_IDENTIFIER 為前綴的日誌):

 journalctl -f _SYSTEMD_UNIT="sshd.service"

四、journalctl配置文件

1. 查看默認配置文件位置

要查找 journalctl 的默認配置文件,需要先使用以下命令啟動查找:

journalctl  --show-cursor 

然後查找下面一行代碼:

...
Cursor: cursor: s=ba22a36bfcce4227a9ade40cb0d2b018;i=346;b=cbf1824ec8f7498d93b88e70925ee735;m=280bfc1e4;t=5c0ff82b4b0df;x=e4ae2415b3d1fed1
...

其中包括一個「cursor」,這是指向最新系統日誌條目的指針,包括是哪個配置文件用來初始化這個系統:

...
m=280bfc1e4;
...

可以看到,這個配置文件的路徑是:

/var/log/journal/280bfc1e4b0df
/system.journal

2. 修改默認配置文件

要修改默認配置文件的大小或最大存儲容量等選項,需要修改 /etc/systemd/journald.conf 文件。打開文件並照需修改。例如,如果要將 Journal 存儲的最大容量增加到100M,可以在文件中搜索 SystemMaxUse ,並將它修改為100M:

# SystemMaxUse=50M
SystemMaxUse=100M

然後保存文件並重新加載 systemd-journald 服務:

systemctl reload systemd-journald.service 

總結

以上是對於 journalctl 命令的一些詳細介紹和實戰演示。通過學習這些用法,可以更加高效地查看和管理系統日誌。在具體的使用中,按需選擇已提到的參數和配置文件選項,會讓你在實際中更加得心應手。

原創文章,作者:ZFEA,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/137011.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZFEA的頭像ZFEA
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相關推薦

  • Cron執行日誌用法介紹

    本文將從多個方面對cron執行日誌進行詳細闡述,包括cron執行日誌的定義、cron執行日誌的產生原因、cron執行日誌的格式以及如何解讀cron執行日誌。 一、定義 Cron是一…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows服務器上的日誌,並將其發送到遠程服務器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • Git config命令用法介紹:用正確的郵箱保障開發工作

    本文將詳細介紹如何使用git config命令配置Git的全局和本地用戶信息,特別是如何正確使用用戶郵箱,保障Git操作的正常進行。 一、git config命令介紹 Git中的每…

    編程 2025-04-29
  • Python命令大全及說明

    Python是一種高級編程語言,由Guido van Rossum於1989年底發明。它具有良好的語法結構和面向對象的編程思想,具有簡潔、易讀、易學的特點,是初學者以及專業開發人員…

    編程 2025-04-29
  • Python SSH 遠程執行命令

    Python SSH 遠程執行命令是指在一個服務器上執行遠程另一個服務器上命令。如果你需要在本地機器上執行命令,或者在遠程機器上執行本地命令,你都可以使用 SSH。在 Python…

    編程 2025-04-29
  • Log4j日誌打印到Systemout.log

    Log4j是Apache的一個強大的日誌組件,可以幫助開發者更好地管理日誌。在Java應用程序中,很多開發者都會選擇使用Log4j來實現日誌輸出。本文將介紹如何使用Log4j將日誌…

    編程 2025-04-28
  • 剖析命令執行函數

    在編程開發過程中,命令執行函數是非常常見的一個概念。它是指接受一個命令字符串,並將其解析執行,返回相應的結果或錯誤信息的函數。本文將從多個方面對命令執行函數進行詳細的闡述,包括其定…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python中獲取用戶輸入命令的方法解析

    本文將從多個角度,分別介紹Python中獲取用戶輸入命令的方法,希望能夠對初學者有所幫助。 一、使用input()函數獲取用戶輸入命令 input()是Python中用於獲取用戶輸…

    編程 2025-04-27

發表回復

登錄後才能評論