首頁 >運維 >linux運維 >linux查看日誌的三種指令

linux查看日誌的三種指令

藏色散人
藏色散人原創
2023-01-04 14:00:556381瀏覽

linux查看日誌的三種指令分別是:1、tail指令,該指令可以即時檢視檔案內容的變更以及日誌檔案;2、multitail指令,該指令可以同時監視多個日誌檔案;3 、less命令,該命令可以快速查看日誌的更改,並且不會使螢幕混亂。

linux查看日誌的三種指令

本教學操作環境:linux5.9.8系統、Dell G3電腦。

linux查看日誌的三種指令是什麼?

Linux 中即時查看日誌的3種方法

#最近我從cnaaa.com購買了雲端伺服器。

我們大家應該都知道如何在 Linux 中查看文件,例如可以使用 cat 或 less 指令。

這對於查看靜態檔案來說是可以的。日誌文件是動態的,其內容隨時會變化,要監測日誌文件,需要在日誌文件內容改變時也能即時看到。

那麼如何即時查看日誌檔呢? tail 指令是可以的,除此之外,還有其他的一些工具,本文將會介紹這些可以即時查看日誌檔案的工具。

1. 使用tail 指令查看日誌檔案

tail 指令使用非常廣泛,因此系統管理員經常使用口頭禪tail the log file(即:tail 日誌檔案) 。

大多數情況下,tail 指令用來查看文件末端的內容,因此才會命名為 tail。

使用 -f 選項可以追蹤文件末尾的內容,這表示它會持續顯示被新添加到文件中的內容。

tail -f location_of_log_file

[外鏈圖片轉存失敗,來源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-nzCWCjye-1664183028850)(D:/img/640.png)]

要停止追蹤日誌文件,可以使用ctrl c 快捷鍵。

tailgrep

如上所述,tail 指令可以即時查看檔案內容的變化。但是,當文件內容更新特別快速的時候,剛剛更新的內容一閃而過,這種情況下,查看起來就不那麼方便了。

例如,我們在追蹤日誌檔案的時候,經常會監視某個特定的術語(字串),在快速更新的大量內容中跟踪,非常不方便。

為了解決這個問題,我們可以將 tail 和 grep 指令結合使用。如下所示:

tail -f log_file | grep search_term

[外鏈圖片轉存失敗,來源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LxXIylsU-1664183028854)(D:/img/640-1664179747239 -1.png)]

這樣看起來就好多了,對吧?在這個基礎上,我們再來做改進。

使用grep 展示搜尋字詞,顯示的資訊比較有限,它只顯示檢索結果,因此我們經常使用-C 選項來顯示檢索結果的前後幾行:

tail -f log_file | grep -C 3 search_term

這樣,我們就能看到檢索結果相關的前後幾行信息,可以更好的追蹤日誌資訊。

還想再改進一些嗎?可以對多個搜尋項目使用grep,然後不區分大小寫:

tail -f log_file | grep -C 3 -i - E 'search_term_1|search_term_2'

使用日誌輪轉(log rotation)追蹤日誌

大多數企業伺服器,日誌都會輪替(rotation),即當日誌檔案達到一定大小後,就會重新命名並壓縮。

[外鏈圖片轉存失敗,來源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-h2RUcofL-1664183028856)(D:/img/640-1664179747241-2.png) ]

如果即時追蹤日誌文件,則會產生問題。預設情況下,tail 指令用於檔案描述符。如果目前日誌檔案被旋轉,tail 指令現在將指向一個存檔日誌文件,該文件現在不會記錄任何變更。

解決方案是按照日誌檔案的名稱追蹤日誌檔案。這樣,即使發生日誌旋轉,尾部也將指向當前日誌檔案(因為其名稱從未更改)。

tail --follow=name log_file | grep -C 3 -i - E 'search_term_1|search_term_2'

tail 非常適合即時監控日誌文件,但上述方法只監控一個日誌檔案。如果要監控多個日誌檔案該怎麼辦呢?請看下一節。

使用tail 查看多個日誌檔案

在Linux 系統中運作,可以使用tail 指令同時監視多個日誌文件,只需要提供文件的路徑:

tail -f log_file_1 -f log_file_2

上述命令,你將會即時看到日誌檔案的更新,並且在前面會帶有檔案名,以區分不同的日誌檔案:

[外鏈圖片轉存失敗,來源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-CMiWKszs-1664183028859)(D:/img/640-1664179747242-3.png)]

除了上述方法,還有另外一種更方便的方式,就是使用一個名為multitail 的工具。

2. 使用 multitail 同時監視多個記錄檔

顧名思義,multitail 用來同時顯示多個檔案。

既然 tail 可以同時監視多個文件,那麼 multitail 有什麼特別的地方呢?

multitail 的優點在於,它可以在分割視圖中顯示文件,甚至可以在不同的行和列中顯示不同的文件。

tail 在同一视图中显示所有内容,所以有时候很难跟踪,multitail 通过提供类似 screen 命令的分割视图来克服了这一困难。

注意,multitail 在大多数Linux系统中没有被默认安装,所以在使用前需要先手动安装。

在 multitail 命令后跟文件路径,最好一次不要超过3个,因为超过3个或以上,跟踪起来就比较困难了。

multitail log_file_1 log_file_2

默认情况下,multitail 的工作方式与 tail -f 相同,它显示最后100行,然后进入实时监视视图;另外,它按行来拆分视图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EZ9iX4d3-1664183028861)(D:/img/640-1664179747242-4.png)]

你可以按 b 键打开一个文件选择窗口,选择某个日志文件查看,以做进一步分析。

分割视图使用 -s 选项,后面跟一个数字,即视图的数量:

multitail -s 2 log_file_1 log_file_2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ETQjV0KA-1664183028863)(D:/img/640-1664179747243-5.png)]

按 q 键可退出 multitail 所有的视图。

multitail 可以做的还有很多,大家感兴趣可以查看一下它的官方文档,本文就不继续介绍了。

3. 使用 less 命令实时查看日志文件

less 命令多用于读取文本文件,也可用于读取实时被更改的文件。

选项 +F 可以实时跟踪文件的更改:

less +F log_file

上述命令会打开日志文件,并实时显示正在写入的更改:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oDZivgss-1664183028865)(D:/img/640-1664179747243-6.png)]

按 ctrl +c 中断显示,按 q 会退出视图。

与 tail 命令不同,此方法可以让我们快速查看日志的更改,而不会使屏幕混乱。

上述监视日志的方法适用于传统的基于文本的日志文件。对于系统日志,可以使用 syslogs,但是现在许多 Linux 发行版已经开始使用 journal 日志来查看和分析日志,所以需要使用 journalctl 命令。

推荐学习:《Linux视频教程

以上是linux查看日誌的三種指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn