linux查看日誌的三種指令分別是:1、tail指令,該指令可以即時檢視檔案內容的變更以及日誌檔案;2、multitail指令,該指令可以同時監視多個日誌檔案;3 、less命令,該命令可以快速查看日誌的更改,並且不會使螢幕混亂。
本教學操作環境: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 快捷鍵。
tail
和 grep
如上所述,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中文網其他相關文章!