重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
這篇文章主要講解了“l(fā)inux怎么查看日志”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“l(fā)inux怎么查看日志”吧!
創(chuàng)新互聯(lián)建站10多年企業(yè)網(wǎng)站制作服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站制作及推廣,對(duì)自拌料攪拌車等多個(gè)方面擁有豐富的網(wǎng)站維護(hù)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
linux查看日志的三種命令分別是:1、tail命令,該命令可以實(shí)時(shí)查看文件內(nèi)容的變以及日志文件;2、multitail命令,該命令可以同時(shí)監(jiān)視多個(gè)日志文件;3、less命令,該命令可以快速查看日志的更改,并且不會(huì)使屏幕混亂。
Linux 中實(shí)時(shí)查看日志的3種方法
最近我從cnaaa.com購(gòu)買了云服務(wù)器。
我們大家應(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í)看到。
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
這樣看起來(lái)就好多了,對(duì)吧?在這個(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ì)記錄任何更改。
解決方案是按照日志文件的名稱跟蹤日志文件。這樣,即使發(fā)生日志旋轉(zhuǎn),尾部也將指向當(dāng)前日志文件(因?yàn)槠涿Q從未更改)。
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ò)提供類似 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 所有的視圖。
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 命令。
感謝各位的閱讀,以上就是“l(fā)inux怎么查看日志”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)linux怎么查看日志這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!