Linux中實(shí)時(shí)查看日志的三種方法
Linux 中實(shí)時(shí)查看日志的3種方法
我們大家應(yīng)該都知道如何在 Linux 中查看文件,比如可以使用 cat 或者 less 命令。
這對(duì)于查看靜態(tài)文件來(lái)說(shuō)是可以的。日志文件是動(dòng)態(tài)的,其內(nèi)容隨時(shí)會(huì)變化,要監(jiān)測(cè)日志文件,需要在日志文件內(nèi)容改變時(shí)也能實(shí)時(shí)看到。
那么如何實(shí)時(shí)查看日志文件呢?tail 命令是可以的,除此以外,還有其他的一些工具,本文將會(huì)介紹這些可以實(shí)時(shí)查看日志文件的工具。
1. 使用 tail 命令查看日志文件
tail 命令使用非常廣泛,因此系統(tǒng)管理員經(jīng)常使用口頭禪 tail the log file(即:tail 日志文件)。
大多數(shù)情況下,tail 命令用于查看文件末尾的內(nèi)容,因此才會(huì)被命名為 tail。
使用 -f 選項(xiàng)可以跟蹤文件末尾的內(nèi)容,這表示它會(huì)持續(xù)顯示被新添加到文件中的內(nèi)容。
tail -f location_of_log_file
要停止跟蹤日志文件,可以使用 ctrl +c 快捷鍵。
tail 和 grep
如上所述,tail 命令可以實(shí)時(shí)查看文件內(nèi)容的變化。但是,當(dāng)文件內(nèi)容更新特別快速的時(shí)候,剛剛更新的內(nèi)容一閃而過(guò),這種情況下,查看起來(lái)就不那么方便了。
比如,我們?cè)诟櫲罩疚募臅r(shí)候,經(jīng)常會(huì)監(jiān)視某個(gè)特定的術(shù)語(yǔ)(字符串),在快速更新的大量?jī)?nèi)容中跟蹤,非常不方便。
為了解決這個(gè)問(wèn)題,我們可以將 tail 和 grep 命令結(jié)合起來(lái)使用。如下所示:
tail -f log_file | grep search_term
在這個(gè)基礎(chǔ)上,我們?cè)賮?lái)做一下改進(jìn)。
使用 grep 展示搜索詞,顯示的信息比較有限,它只顯示檢索結(jié)果,因此我們經(jīng)常使用 -C 選項(xiàng)來(lái)顯示檢索結(jié)果的前后幾行:
tail -f log_file | grep -C 3 search_term
這樣,我們就能看到檢索結(jié)果相關(guān)的前后幾行信息,可以更好的跟蹤日志信息。
還想再改進(jìn)一些嗎?可以對(duì)多個(gè)搜索項(xiàng)使用 grep,然后不區(qū)分大小寫(xiě):
tail -f log_file | grep -C 3 -i - E 'search_term_1|search_term_2'
使用日志輪轉(zhuǎn)(log rotation)跟蹤日志
大多數(shù)企業(yè)服務(wù)器,日志都會(huì)輪轉(zhuǎn)(rotation),即當(dāng)日志文件達(dá)到一定大小后,就會(huì)重命名并壓縮。
如果實(shí)時(shí)跟蹤日志文件,則會(huì)產(chǎn)生問(wèn)題。默認(rèn)情況下,tail 命令用于文件描述符。如果當(dāng)前日志文件被旋轉(zhuǎn),tail 命令現(xiàn)在將指向一個(gè)存檔日志文件,該文件現(xiàn)在不會(huì)記錄任何更改。
解決方案是按照日志文件的名稱(chēng)跟蹤日志文件。這樣,即使發(fā)生日志旋轉(zhuǎn),尾部也將指向當(dāng)前日志文件(因?yàn)槠涿Q(chēng)從未更改)。
tail --follow=name log_file | grep -C 3 -i - E 'search_term_1|search_term_2'
tail 非常適合實(shí)時(shí)監(jiān)控日志文件,但上述方法只監(jiān)控一個(gè)日志文件。如果要監(jiān)控多個(gè)日志文件該怎么辦呢?請(qǐng)看下一節(jié)。
使用 tail 查看多個(gè)日志文件
在 Linux 系統(tǒng)中工作,可以使用 tail 命令同時(shí)監(jiān)視多個(gè)日志文件,只需要提供文件的路徑:
tail -f log_file_1 -f log_file_2
上述命令,你將會(huì)實(shí)時(shí)看到日志文件的更新,并且在前面會(huì)帶有文件名,以區(qū)分不同的日志文件。
除了上述方法,還有另外一種更方便的方式,就是使用一個(gè)名為 multitail 的工具。
2. 使用 multitail 同時(shí)監(jiān)視多個(gè)日志文件
顧名思義,multitail 用于同時(shí)顯示多個(gè)文件。
既然 tail 可以同時(shí)監(jiān)視多個(gè)文件,那么 multitail 有什么特別的地方呢?
multitail 的優(yōu)點(diǎn)在于,它可以在拆分視圖中顯示文件,甚至可以在不同的行和列中顯示不同的文件。
tail 在同一視圖中顯示所有內(nèi)容,所以有時(shí)候很難跟蹤,multitail 通過(guò)提供類(lèi)似 screen 命令的分割視圖來(lái)克服了這一困難。
注意,multitail 在大多數(shù)Linux系統(tǒng)中沒(méi)有被默認(rèn)安裝,所以在使用前需要先手動(dòng)安裝。
在 multitail 命令后跟文件路徑,最好一次不要超過(guò)3個(gè),因?yàn)槌^(guò)3個(gè)或以上,跟蹤起來(lái)就比較困難了。
multitail log_file_1 log_file_2
默認(rèn)情況下,multitail 的工作方式與 tail -f 相同,它顯示最后100行,然后進(jìn)入實(shí)時(shí)監(jiān)視視圖;另外,它按行來(lái)拆分視圖。
你可以按 b 鍵打開(kāi)一個(gè)文件選擇窗口,選擇某個(gè)日志文件查看,以做進(jìn)一步分析。
分割視圖使用 -s 選項(xiàng),后面跟一個(gè)數(shù)字,即視圖的數(shù)量:
multitail -s 2 log_file_1 log_file_2
按 q 鍵可退出 multitail 所有的視圖。
multitail 可以做的還有很多,大家感興趣可以查看一下它的官方文檔,本文就不繼續(xù)介紹了。
3. 使用 less 命令實(shí)時(shí)查看日志文件
less 命令多用于讀取文本文件,也可用于讀取實(shí)時(shí)被更改的文件。
選項(xiàng) +F 可以實(shí)時(shí)跟蹤文件的更改:
less +F log_file
上述命令會(huì)打開(kāi)日志文件,并實(shí)時(shí)顯示正在寫(xiě)入的更改。
按 ctrl +c 中斷顯示,按 q 會(huì)退出視圖。
與 tail 命令不同,此方法可以讓我們快速查看日志的更改,而不會(huì)使屏幕混亂。
上述監(jiān)視日志的方法適用于傳統(tǒng)的基于文本的日志文件。對(duì)于系統(tǒng)日志,可以使用 syslogs,但是現(xiàn)在許多 Linux 發(fā)行版已經(jīng)開(kāi)始使用 journal 日志來(lái)查看和分析日志,所以需要使用 journalctl 命令。
到此這篇關(guān)于Linux中實(shí)時(shí)查看日志的三種種方法的文章就介紹到這了,更多相關(guān)Linux實(shí)時(shí)查看日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ubuntu系統(tǒng)下apache配置虛擬主機(jī)及反向代理詳解
這篇文章主要介紹了ubuntu系統(tǒng)下apache配置虛擬主機(jī)及反向代理的相關(guān)資料,文中通過(guò)實(shí)例給大家演示的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-06-06Centos 6.8編譯安裝LNMP環(huán)境(Nginx+MySQL+PHP)教程
這篇文章主要介紹了關(guān)于CentOS 6.8中編譯安裝LNMP環(huán)境的相關(guān)資料,LNMP即Linux,Nginx,MySQL,PHP,文中通過(guò)一步步的步驟介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-03-03Apache ab并發(fā)負(fù)載壓力測(cè)試實(shí)現(xiàn)方法
Apache的ab命令模擬多線程并發(fā)請(qǐng)求,測(cè)試服務(wù)器負(fù)載壓力,也可以測(cè)試nginx、lighthttp、IIS等其它Web服務(wù)器的壓力2019-09-09Linux之Centos8創(chuàng)建CA證書(shū)教程
大家好,本篇文章主要講的是Linux之Centos8創(chuàng)建CA證書(shū)教程,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12linux vi命令知識(shí)點(diǎn)用法總結(jié)
在本篇文章里小編給大家整理的是關(guān)于linux vi命令的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們參考學(xué)習(xí)下。2019-10-10Centos7 安裝達(dá)夢(mèng)數(shù)據(jù)庫(kù)的教程
這篇文章主要介紹了Centos7 安裝達(dá)夢(mèng)數(shù)據(jù)庫(kù)的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12