shell指令碼中,如何搜尋日誌文字中的關鍵字

2022-10-11 00:18:21 字數 1001 閱讀 7078

單個檔案可以使用vi或vim編輯器開啟日誌檔案,使用編輯器裡的查詢功能。在檢視模式下,符號/後面跟關鍵字向下查詢,符號?後面跟關鍵字向上查詢,按n查詢下乙個,按n查詢上乙個。

多個檔案可以使用grep命令,比如 grep error /var/log/messages*。會把匹配到error這個關鍵字的行和所在的日誌檔案直接輸出到螢幕。詳細可見:

還可以使用cat命令後面使用grep過濾等方法,

linux如何在日誌中查詢關鍵字?linux日誌中如何查詢關鍵字及其前後的資訊

在日常工作中,我們經常需要檢視日誌,比如可以通過 tail 命令實時檢視日誌,也可以通過 cat 等命令檢視日誌資訊。

但現在我們要討論的是,如何從日誌中通過關鍵字過濾出我們想要的內容,方法有多種,今天我們主要以 cat 命令來進行學習。

假設存在日誌檔案 hrun.log,查詢的關鍵字為"新增使用者":

根據關鍵字檢視日誌

cat hrun.log

| grep "新增使用者"

根據關鍵字檢視後10行日誌

cat hrun.log

| grep "新增使用者" -a 10

根據關鍵字檢視前10行日誌

cat hrun.log

| grep "新增使用者" -b 10

根據關鍵字檢視前後10行日誌,並顯示出行號

cat -n hrun.log

| grep "新增使用者" -c 10

檢視日誌前 50 行

cat hrun.log

| head -n 50

檢視日誌後 50 行,並顯示出行號

cat -n hrun.log

| tail -n 50

說明:-a 表示關鍵字之後,after

-b 表示關鍵字之前,before

-c 表示關鍵字前後,context

Shell中按月打包日誌小指令碼

linux中的各種web,資料庫,各種服務經常會按日產生大量日誌。運維的時候經常要做的就是按月來壓縮 歸檔。userweb.log.2011 1 1 userweb.log.2011 1 2 userweb.log.2011 2 1 userweb.log.2011 2 2 userweb.log....

shell指令碼列印日誌方法

在shell指令碼執行過程中如果沒有日誌記錄,特別是指令碼比較長的情況下在執行完再定位問題很難發現問題原因,因此在指令碼中增加日誌顯得十分重要。如何在日誌中記錄是哪個使用者什麼時間執行的哪個指令碼,執行結果又是什麼呢?下面介紹日誌列印方法 example 1 呼叫log info函式,如果希望只記錄...

shell指令碼列印日誌方法

在shell指令碼執行過程中如果沒有日誌記錄,特別是指令碼比較長的情況下在執行完再定位問題很難發現問題原因,因此在指令碼中增加日誌顯得十分重要。如何在日誌中記錄是哪個使用者什麼時間執行的哪個指令碼,執行結果又是什麼呢?下面介紹日誌列印方法 example 1 呼叫log info函式,如果希望只記錄...