自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux 必知必會:通過不同示例查看和分析 Systemd 日志

系統(tǒng) Linux
本指南解釋了 Systemd 的 journalctl 實用程序及其各種命令的基礎(chǔ)知識。您可以使用這些命令對 Linux 中的桌面和服務(wù)器日志進行故障排除。這就是您可以使用 journalctl 通過不同示例查看和分析 Systemd 日志的方式。

介紹

許多人說 Systemd 不好,它對系統(tǒng)很繁重,而且一直是一個有爭議的話題。但你不能否認它提供了一套很好的實用程序來管理和排除系統(tǒng)故障。想象一下,您最終會得到一個沒有 GUI 的損壞系統(tǒng)。您可能也搞砸了 boot 和 GRUB。在這種情況下或一般情況下——您可以從 LIVE 系統(tǒng)啟動,掛載您的 Linux 分區(qū)并瀏覽 Systemd 日志以找出問題所在。

Systemd 具有以下三個基本組件:

  • systemd:Linux 操作系統(tǒng)的系統(tǒng)和服務(wù)管理器。
  • systemctl:用于自省和控制 systemd 系統(tǒng)和服務(wù)管理器狀態(tài)的命令。
  • systemd-analyze:提供系統(tǒng)啟動性能統(tǒng)計信息,并從系統(tǒng)和服務(wù)管理器檢索其他狀態(tài)和跟蹤信息

除了這三個之外,systemd 還提供了其他服務(wù),例如 – journald、logind、networkd 等。在本指南中,我們將討論 systemd 的 journald 服務(wù)。

journald – systemd journal守護進程

通過設(shè)計,systemd 提供了一種集中方式來處理來自進程、應(yīng)用程序等的所有操作系統(tǒng)日志。所有這些日志記錄事件都由 systemd 的 journald 守護進程處理。journald 守護進程收集來自 Linux 操作系統(tǒng)各處的所有日志,并將主題作為二進制數(shù)據(jù)存儲在文件中。

集中記錄事件的優(yōu)點,作為二進制數(shù)據(jù)的系統(tǒng)問題有很多。例如,由于系統(tǒng)日志存儲為二進制而不是文本 - 您可以通過多種方式進行翻譯,例如文本、JSON 對象以滿足各種需求。此外,由于日志是通過日志的日期/時間操作順序存儲的,因此跟蹤單個事件非常容易。

請記住,journald 收集的日志文件有數(shù)千行,并且會針對每個事件、每次啟動進行更新。因此,如果您長時間運行 Linux 操作系統(tǒng),journal日志大小應(yīng)該以 GB 為單位。由于日志數(shù)以千計,因此最好使用基本命令進行過濾以了解有關(guān)系統(tǒng)問題的更多信息。

journald配置文件

journald 的配置文件位于以下路徑中。它包含有關(guān)日志記錄如何發(fā)生的各種標志。您可以查看該文件并進行必要的更改。但我建議不要修改此文件,除非您知道自己在做什么。

/etc/systemd/journald.conf

journald 存儲二進制日志文件的位置

journald 以二進制格式存儲日志。它們存儲在此路徑下的目錄中。

[linuxmi@fedora www.linuxmi.com]$ cd /var/log/journal
[linuxmi@fedora journal]$ ls
a73fa995d8e4438ea7b1fcedb8220981
[linuxmi@fedora journal]$ cd a73fa995d8e4438ea7b1fcedb8220981

例如,在下面的路徑中有一個目錄,其中包含迄今為止的所有系統(tǒng)日志。

journalctl 日志文件路徑

不要使用 cat 命令或使用 nano 或 vi 打開這些文件。它們將無法正確顯示。

使用 journalctl 查看和分析 Systemd 日志

基本journalctl命令

使用journalctl守護程序查看日志的基本命令是 

[linuxmi@fedora www.linuxmi.com]$ journalctl

journalctl

這將為您提供所有日志條目,包括來自所有應(yīng)用程序和進程的錯誤、警告等。它顯示最舊日志在頂部和當前日志在底部的列表。您需要按住 ENTER 逐行滾動。您也可以使用 PAGE UP 和 PAGE DOWN 鍵滾動。按 q 退出此視圖。

如何查看時區(qū)的 journal條目

默認情況下,journalctl 顯示當前系統(tǒng)時區(qū)的日志時間。但是,您可以輕松地在命令中提供時區(qū)以將相同的日志轉(zhuǎn)換為不同的時區(qū)。例如,要以 UTC 格式查看日志,請使用以下命令。

[linuxmi@fedora www.linuxmi.com]$ journalctl --utc

journalctl –utc

如何在journal日志中僅查看錯誤、警告等

系統(tǒng)生成的日志具有不同的優(yōu)先級。有些日志可能是可以忽略的警告,有些可能是嚴重錯誤。您可能只想查看錯誤,而不是警告。這也可以使用以下命令。

要查看緊急系統(tǒng)消息,請使用:

[linuxmi@fedora www.linuxmi.com]$ journalctl -p 0

 journalctl -p 0

錯誤代碼

0:緊急
1:警報
2:嚴重
3:錯誤
4:警告
5:通知
6:信息
7:調(diào)試

當您指定錯誤代碼時,它會顯示來自該代碼及以上代碼的所有消息。例如,如果您指定以下命令,它將顯示優(yōu)先級為 2、1 和 0 的所有消息

[linuxmi@fedora www.linuxmi.com]$ journalctl -p 2

如何查看特定引導(dǎo)的 journal日志

當您運行 journalctl 命令時,它會顯示來自當前啟動的信息,這些信息來自您正在運行的當前會話。但也可以查看有關(guān)過去引導(dǎo)的信息。

journal 日志會在每次重新啟動時不斷更新。journald 跟蹤不同引導(dǎo)中的日志。要查看,引導(dǎo)日志使用以下命令。

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl --list-boots

journalctl 列表引導(dǎo)

  • 第一個數(shù)字顯示了唯一的日志引導(dǎo)軌道編號,您可以在下一個命令中使用它來分析特定的引導(dǎo)。
  • 第二個數(shù)字是您也可以在命令中指定的引導(dǎo) ID。
  • 接下來的兩個日期、時間組合是存儲在相應(yīng)文件中的日志的持續(xù)時間。如果您想從特定日期、時間找出日志或錯誤,這非常方便。

要查看特定的引導(dǎo)編號,請使用第一個編號或引導(dǎo) ID,如下所示。

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl -b -2
linuxmi@linuxmi:~/www.linuxmi.com$ journalctl -b ff83b9f3b8cb462abf6f0c318c86f4a2

journalctl -b 2

您還可以使用-x開關(guān)來在顯示中添加對 systemd 錯誤消息的解釋。在某些情況下,這是救命稻草。

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl -xb -p 3

journalctl -xb

如何查看特定時間、日期持續(xù)時間的 journal 日志

journalctl 足夠強大,可以在命令本身中提供類似“english”的參數(shù)來進行時間和日期操作。

您可以將 --since 開關(guān)與“yesterday”, “today”, “tomorrow”, 或 “now”組合使用。

下面是不同命令的一些示例。您可以根據(jù)需要修改它們。一看就知道,以下命令中的日期、時間格式為"YYYY-MM-DD HH:MM:SS"

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl --since "2022-01-16 06:00:00"

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl --since "2022-03-03" --until "2022-03-05 05:00:00"
linuxmi@linuxmi:~/www.linuxmi.com$ journalctl --since yesterday
linuxmi@linuxmi:~/www.linuxmi.com$ journalctl --since 08:00 --until "1 hour ago"

您也可以將上述內(nèi)容與錯誤級別開關(guān)結(jié)合使用。

如何查看內(nèi)核特定的journal 日志

Linux 內(nèi)核消息也可以從 journal 日志中提取。要查看當前啟動的內(nèi)核消息,請僅使用以下命令。

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl -k

如何查看服務(wù)的 journal 日志,PID

您只能從 journald 日志中過濾掉來自 systemd 服務(wù)單元的特定日志。例如,要從 NetworkManager 服務(wù)中查找日志,請使用以下命令。

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl -u NetworkManager.service

journalctl NetworkManager 服務(wù)

如果您不知道服務(wù)名稱,可以使用以下命令列出系統(tǒng)中的 systemd 服務(wù)。

linuxmi@linuxmi:~/www.linuxmi.com$ systemctl list-units --type=service

如何查看用戶、組的 journal 日志

如果您正在分析服務(wù)器日志,則此命令在多個用戶登錄時很有幫助。您可以首先使用以下命令從用戶名中找出用戶 ID。例如,要找出用戶“ linuxmi”的 id

linuxmi@linuxmi:~/www.linuxmi.com$ id -u linuxmi

然后使用該 ID 和_UID來查看用戶生成的日志。

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl _UID=1000 --since today

journalctl _UID

同樣,使用_GID為用戶組找出相同的值。

如何查看可執(zhí)行文件的 journal 日志

您還可以查找特定程序或可執(zhí)行文件的 journald記錄。例如,如果要查找 gnome-shell 的消息,可以運行以下命令。

linuxmi@linuxmi:~/www.linuxmi.com$ journalctl /usr/bin/gnome-shell --since today

journalctl gnome-shell

結(jié)束語

我希望本指南可以幫助您使用 journalctl 在 Linux 桌面或服務(wù)器故障排除上查看分析 systemd 日志。如果您知道如何使用命令,systemd 日志管理功能非常強大,它可以讓您在調(diào)試期間輕松一些。如今,所有主要的主流 Linux 發(fā)行版都使用 Systemd。Ubuntu、Debian、Fedora、Arch——它們都使用 systemd 作為默認操作系統(tǒng)產(chǎn)品。如果您想了解無 systemd 的 Linux 發(fā)行版,那你可能需要查看MX-Linux、Gentoo、Slackware、Void Linux。

責(zé)任編輯:龐桂玉 來源: Linux公社
相關(guān)推薦

2020-07-10 07:58:14

Linux

2024-01-09 13:58:22

PandasPython數(shù)據(jù)分析

2019-01-30 14:14:16

LinuxUNIX操作系統(tǒng)

2024-11-15 11:11:48

2023-12-26 12:10:13

2019-11-06 10:56:59

Python數(shù)據(jù)分析TGI

2021-06-09 11:06:00

數(shù)據(jù)分析Excel

2024-06-13 09:10:22

2024-01-03 07:56:50

2022-05-18 09:01:19

JSONJavaScript

2022-12-07 09:00:18

錯誤異常CGO

2022-12-01 08:15:41

CGOswitcherror

2022-09-28 08:40:04

殺死一個終端進程

2023-02-16 09:52:46

journalctlsystemdLinux

2022-08-19 10:31:32

Kafka大數(shù)據(jù)

2023-05-10 07:15:22

Nacos管理工具配置

2015-10-20 09:46:33

HTTP網(wǎng)絡(luò)協(xié)議

2018-10-26 14:10:21

2015-08-17 16:05:35

javascript對象編程

2023-05-08 15:25:19

Python編程語言編碼技巧
點贊
收藏

51CTO技術(shù)棧公眾號