Systemd 的第二個(gè)主要部分是 journal 。這是個(gè)日志系統(tǒng),類似于 syslog 但也有些顯著區(qū)別。如果您是個(gè) Unix 日志管理模式的粉絲,準(zhǔn)備好出離憤怒吧:這是個(gè)二進(jìn)制日志,因此您不能使用常規(guī)的命令行文本處理工具來(lái)解析它。這個(gè)設(shè)計(jì)決定不出意料地在網(wǎng)上引起了激烈的爭(zhēng)論,但它的確有些優(yōu)點(diǎn)。例如,日志可以被更系統(tǒng)地組織,帶有更多的元數(shù)據(jù),因此可以更容易地根據(jù)可執(zhí)行文件名和進(jìn)程號(hào)等過(guò)濾出信息。
要查看整個(gè) journal,輸入以下命令:
journalctl
像許多其他的 Systemd 命令一樣,該命令將輸出通過(guò)管道的方式引向 less
程序,因此您可以使用空格鍵向下滾動(dòng),鍵入/
(斜杠)查找,以及其他熟悉的快捷鍵。您也能在此看到少許顏色,像紅色的警告及錯(cuò)誤信息。
以上命令會(huì)輸出很多信息。為了限制其只輸出本次啟動(dòng)的消息,使用如下命令:
journalctl-b
這就是 Systemd 大放異彩的地方!您想查看自上次啟動(dòng)以來(lái)的全部消息嗎?試試 journalctl -b -1 吧。再上一次的?用 -2 替換 -1 吧。那自某個(gè)具體時(shí)間,例如2014年10月24日16:38以來(lái)的呢?
journalctl-b --since=”2014-10-2416:38”
即便您對(duì)二進(jìn)制日志感到遺憾,那依然是個(gè)有用的特性,并且對(duì)許多系統(tǒng)管理員來(lái)說(shuō),構(gòu)建類似的過(guò)濾器比起寫(xiě)正則表達(dá)式而言容易多了。
我們已經(jīng)可以根據(jù)特定的時(shí)間來(lái)準(zhǔn)確查找日志了,那可以根據(jù)特定程序嗎?對(duì)單元而言,試試這個(gè):
journalctl-u gdm.service
(注意:這是個(gè)查看 X server 產(chǎn)生的日志的好辦法。)那根據(jù)特定的進(jìn)程號(hào)?
journalctl _PID=890
您甚至可以請(qǐng)求只看某個(gè)可執(zhí)行文件產(chǎn)生的消息:
journalctl/usr/bin/pulseaudio
若您想將輸出的消息限制在某個(gè)優(yōu)先級(jí),可以使用 -p 選項(xiàng)。該選項(xiàng)參數(shù)為 0 的話只會(huì)顯示緊急消息(也就是說(shuō),是時(shí)候向 $DEITY 祈求保佑了)(LCTT 譯注: $DEITY 是一個(gè)計(jì)算機(jī)方面的幽默,DEITY 是指廣義上的“神”,$前綴表示這是一個(gè)變量),為 7 的話會(huì)顯示所有消息,包括調(diào)試消息。請(qǐng)查看手冊(cè) (man journalctl
) 獲取更多關(guān)于優(yōu)先級(jí)的信息。
值得指出的是,您也可以將多個(gè)選項(xiàng)結(jié)合在一起,若想查看在當(dāng)前啟動(dòng)中由 GDM 服務(wù)輸出的優(yōu)先級(jí)數(shù)小于等于 3 的消息,請(qǐng)使用下述命令:
journalctl-u gdm.service -p 3-b
最后,如果您僅僅想打開(kāi)一個(gè)隨 journal 持續(xù)更新的終端窗口,就像在沒(méi)有 Systemd 時(shí)使用 tail
命令實(shí)現(xiàn)的那樣,輸入 journalctl -f
就好了。
二進(jìn)制日志并不流行,但 journal 的確有它的優(yōu)點(diǎn),如非常方便的信息查找及過(guò)濾。
![]() | ![]() .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書(shū)籍 |
![]() | ![]() .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書(shū)籍 |