新聞中心
在Systemd出現(xiàn)之前,Linux系統(tǒng)及各應(yīng)用的日志都是分別管理的,Systemd開始統(tǒng)一管理了所有Unit的啟動日志,這樣帶來的好處就是可以只用一個 journalctl命令,查看所有內(nèi)核和應(yīng)用的日志,下面為大家詳細(xì)講解一下Linux下journalctl命令使用實例。

成都創(chuàng)新互聯(lián)公司服務(wù)項目包括邗江網(wǎng)站建設(shè)、邗江網(wǎng)站制作、邗江網(wǎng)頁制作以及邗江網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,邗江網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到邗江省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
1) 如何使日志長期保存在系統(tǒng)中?
默認(rèn)情況下,journal日志在大多數(shù) Linux 發(fā)行版中是啟用的,但它將日志數(shù)據(jù)存儲在/run/log/journal/中,重啟時會被刪除。如果要使日志永久保存,請執(zhí)行以下步驟,這些步驟將自動創(chuàng)建/var/log/journal/目錄。
以 root 用戶身份打開/etc/systemd/journald.conf文件并取消注釋“Storage=auto”的行并將其更改為“Storage=persistent”?;蛘撸梢允褂?sed 命令替換文件中的匹配字符串。
[root@server1 ~]# sed -i '/Storage/ c\Storage=persistent' /etc/systemd/journald.conf
重啟 systemd-journald 服務(wù):
[root@server1 ~]# systemctl restart systemd-journald
修改/var/log/journal權(quán)限:
[root@server1 ~]# chown -R root:systemd-journal /var/log/journal
下面可以從目錄中看到日志了。
2) journalctl 常用的選項
在使用 Journalctl 工具之前,可以了解一些常用的選項:
-
-f : 實時顯示最近的10條日志。
-
-e : 跳轉(zhuǎn)到日志末尾以顯示最新事件。
-
-r : 按時間倒序打印日志消息
-
-k : 只顯示內(nèi)核日志。
-
-u : 只顯示指定systemd Unit的消息。
-
-b : 顯示來自特定引導(dǎo)的消息,如果不包括特定引導(dǎo)會話,則顯示當(dāng)前引導(dǎo)消息。
-
–list-boots : 顯示引導(dǎo)編號(相對于當(dāng)前引導(dǎo))、它的id以及與引導(dǎo)有關(guān)的第一個和最后一個消息的時間戳。
-
–utc : 以UTC時間表示。
-
-p, –priority= : 按消息優(yōu)先級過濾輸出。
-
-S, –since= : 根據(jù)開始時間過濾日志
-
-U, –until= : 根據(jù)結(jié)束時間過濾日志
-
–disk-usage : 顯示所有日志文件的當(dāng)前磁盤使用情況。
3)如何使用journalctl讀取日志
3.a) 使用 journalctl 命令查看基本日志
當(dāng)journalctl不帶選項是,它會顯示日志的完整內(nèi)容,首先列出最舊的記錄。
它在后端使用less命令來顯示日志。
[root@server1 ~]# journalctl
3.b) 以相反的順序顯示日志
上面的輸出按時間順序顯示日志。如果想要將最新的日志放在最前面,需要添加-r選項。
[root@server1 ~]# journalctl -r
3.c) 顯示指定行數(shù)的日志
可以使用-n選項僅顯示日志中指定行數(shù)的日志,如下所示:
[root@server1 ~]# journalctl -n 20
3.d) 實時查看日志
可以使用-f選項查看實時日志,如下所示。這在對某些問題進(jìn)行故障排除時很有用。
[root@server1 ~]# journalctl -f
3.e) 只顯示內(nèi)核日志
過濾器可以根據(jù)你的需要使用。要僅顯示內(nèi)核日志,可以使用-k選項。這相當(dāng)于字段匹配_TRANSPORT=kernel。
[root@server1 ~]# journalctl -k
或者
[root@server1 ~]# journalctl _TRANSPORT=kernel
3.f) 過濾出系統(tǒng)引導(dǎo)日志
每次引導(dǎo)系統(tǒng)時,都會在日志中創(chuàng)建一個新的引導(dǎo)條目。要列出所有可用的引導(dǎo),運行以下命令:
[root@server1 ~]# journalctl --list-boots
-1 5d845cc6c67746bdabd9b9a91c0d86ee Tue 2021-06-08 14:58:47 CST—Fri 2021-06-11 08:32:36 CST
0 5690a1c73db146bb8ceeaf3c8b1086f5 Wed 2021-06-16 15:40:42 CST—Wed 2021-06-16 15:41:20 CST
系統(tǒng)引導(dǎo)日志以一個數(shù)字作為前綴,該數(shù)字從0開始?!?′ 指的是當(dāng)前啟動。引導(dǎo)會話“-1”是上次引導(dǎo)的會話,依此類推。使用下面命令顯示本次系統(tǒng)引導(dǎo)的日志記錄:
[root@server1 ~]# journalctl -b 0
查看上一次系統(tǒng)引導(dǎo)的記錄,如下操作:
[root@server1 ~]# journalctl -b -1
3.g) 基于時間間隔的過濾
可以根據(jù)時間間隔過濾日志。多個參數(shù)可以與時間過濾器一起使用,如下所示。要使用時間過濾器,請使用“-S 或 –since”和“-U 或 –until”命令行開關(guān)。
要過濾從昨天到目前的日志,請運行以下命令:
[root@server1 ~]# journalctl -S yesterday
僅過濾今天的日志,請運行以下命令:
[root@server1 ~]# journalctl -S today
或者
[root@server1 ~]# journalctl -S 00:00
如果僅過濾昨天的日志,不包括今天的,請運行以下命令:
[root@server1 ~]# journalctl -S yesterday --until 00:00
要過濾自 3 月 12 日以來的日志,請運行以下命令:
[root@server1 ~]# journalctl -S 2021-03-12
如要使用日期和時間過濾日志,請運行以下命令。
注意:日期和時間的使用格式:year-month-day hour:minute:second
[root@server1 ~]# journalctl -S "2021-06-01 20:00:00" -U "2021-06-16"
要過濾過去一小時的消息,請使用以下命令:
[root@server1 ~]# journalctl -S -1h
3.h) 按優(yōu)先級過濾
過濾可以應(yīng)用于消息優(yōu)先級,這在你想要過濾特定消息(如“Warn”或“Error”等)時非常有用。
下面列出了所有優(yōu)先級:
| Priority | Code |
|---|---|
| 0 | emerg |
| 1 | alert |
| 2 | crit |
| 3 | err |
| 4 | warning |
| 5 | notice |
| 6 | info |
| 7 | debug |
[root@server1 ~]# journalctl -p 3 -b
或者
[root@server1 ~]# journalctl -p err -b
4) 基于字段的過濾
journal日志可以按特定字段過濾。要匹配的字段的語法是FIELD_NAME=MATCHED_VALUE,例如SYSTEMD_UNIT=httpd.service'。此外,可以在單個查詢中指定多個匹配項,以更方便的方式過濾輸出消息。
4.a) 按Unit過濾
要顯示由指定服務(wù)生成的消息,請使用下面給出的命令。同樣可以過濾任何服務(wù)消息。
[root@server1 ~]# journalctl -u sshd.service
或者
[root@server1 ~]# journalctl _SYSTEMD_UNIT=sshd.service
4.b) 按設(shè)備路徑過濾
要過濾與特定設(shè)備相關(guān)的消息,請運行以下命令:
[root@server1 ~]# journalctl /dev/sda
5) 檢查日志文件的磁盤占用情況
當(dāng)你為journal日志啟用持久存儲時,它最多使用/var/log/journal所在文件系統(tǒng)容量的“10%”。
當(dāng)您為日志日志啟用持久存儲時,它最多使用“/var/log/journal”所在文件系統(tǒng)的“10%”。
[root@server1 ~]# journalctl --disk-usage
Archived and active journals take up 16.0M in the file system.
網(wǎng)頁標(biāo)題:Linux下journalctl命令使用實例
新聞來源:http://www.fisionsoft.com.cn/article/cdcegoe.html


咨詢
建站咨詢
