小秀了一把,沒日誌平臺,一樣能高效的從日誌中找出故障信息

點擊上方藍色字體,選擇“設爲星標”

回覆”學習資料“獲取學習寶典


來源:blog.csdn.net/weixin_42614447/article/details/85806115


  • 一、cat命令:
  • 二、more命令:
  • 三、less命令:
  • 四、head命令:
  • 五、tail命令:
  • 六、tac命令:
  • 七、echo命令:
  • 八、grep命令:
  • 九、sed命令:
  • 混合命令:
  • 附加:

當日志存儲文件很大時,我們就不能用 vi 直接去查看日誌了,就需要Linux的一些內置命令去查看日誌文件.

系統Log日誌位置:

/var/log/message 系統啓動後的信息和錯誤日誌,是Red Hat Linux中最常用的日誌之一

/var/log/secure 與安全相關的日誌信息

/var/log/maillog 與郵件相關的日誌信息

/var/log/cron 與定時任務相關的日誌信息

/var/log/spooler 與UUCP和news設備相關的日誌信息

/var/log/boot.log 守護進程啓動和停止相關的日誌消息

一、cat命令:

參數:
-n 或 --number 由 1 開始對所有輸出的行數編號
-b 或 --number-nonblank 和 -n 相似,只不過對於空白行不編號
-s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換爲一行的空白行
-v 或 --show-nonprinting
-E --show-ends 在每行結束處顯示 $
-e --等價於-vE
cat主要有三大功能:
1. $ cat filename 一次顯示整個文件。
2. $ cat > filename 從鍵盤創建一個文件。(只能創建新文件,不能編輯已有文件)
3. $ cat filename1 filename2 > filename 將幾個文件合併爲一個文件(如果原本file文件中有內容,會被覆
   蓋掉) 蓋掉) 
 
例:
把 file1 的內容加上行號後輸入到 file2 這個文件裏  
cat -n filename1 > filename2
把 file1 和 file2 的內容加上行號(空白行不加)之後將內容追加到 file3 裏
cat -b filename1 filename2 >> filename3  
 
把test.txt文件扔進垃圾箱,賦空值test.txt
cat /dev/null > /etc/test.txt   
注意:>意思是創建,>>是追加。千萬不要弄混了。

二、more命令:

more 命令是一個基於vi編輯器文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容,支持vi中的關鍵字定位操作。
該命令一次顯示一屏文本信息,滿屏後停下來,以百分比的形式,以上下翻頁,以上下行移動顯示查看日誌並且在屏幕
的底部給出一個提示信息,從開始至當前己顯示的該文件的百分比:–More–(XX%)
 **按鍵                                                    **說明**
 按Space鍵:顯示文本的下一屏內容。
 按B鍵:顯示上一屏內容。
 按Enter鍵:只顯示文本的下一行內容。
 按斜線符:接着輸入一個模式,可以在文本中尋找下一個相匹配的模式。
 按H鍵:顯示幫助屏,該屏上有相關的幫助信息。
 按Q鍵:退出more命令

三、less命令:

less 命令查看日誌,和more命令類似,只不過less支持上下鍵前後翻閱文件。

四、head命令:

參數:
-q 隱藏文件名
-v 顯示文件名
-c 顯示字節數
-n 顯示的行數
從文本文件的頭部開始查看,head 命令用於查看一個文本文件的開頭部分。
例:
head filename 或 head -n 10 顯示文本文件 file 的前十行內容,然後退出命令
head -n 20 filename 顯示文本文件 file 的前二十行內容
head -n -10 filename 顯示文本文件除了最後10行的其他所有文本文件信息

五、tail命令:

tail 命令用於顯示文本文件的末尾內容(默認10行,相當於增加參數 -n 10),並且實時不斷有內容被打印出來,
  若想中斷進程,使用命令 Ctrl-C
參數:
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ] 
參數解釋:
-f 該參數用於監視File文件增長。
-c Number 從 Number 字節位置讀取指定文件 
-n Number 從 Number 行位置讀取指定文件。
-m Number 從 Number 多字節字符位置讀取指定文件,比方你的文件假設包括中文字,假設指定-c參數,可能導致
   截斷,但使用-m則會避免該問題。
-b Number 從 Number 表示的512字節塊位置讀取指定文件。
-k Number 從 Number 表示的1KB塊位置讀取指定文件。
File 指定操作的目標文件名稱 
上述命令中,都涉及到number,假設不指定,默認顯示10行。Number前面可使用正負號,表示該偏移從頂部還是從尾
  部開始計算。
tail 可運行文件一般在/usr/bin/以下。
tail -f filename 監視filename文件的尾部內容(默認10行,相當於增加參數 -n 10)
tail -100f filename 監視filename文件的尾部內容(默認從底部往前100行,相當於增加參數 -n 100)
tail -n 20 filename 顯示filename最後20行
tail -r -n 10 filename 逆序顯示filename最後10行

六、tac命令:

tac (反向查看日誌,會打開整個文件,倒序顯示,不常用)
tac 是將 cat 反寫過來,所以他的功能就跟 cat 相反。
cat 是由第一行到最後一行連續顯示在屏幕上,而 tac 則是由最後一行到第一行反向在螢幕上顯示出來

七、echo命令:

echo 命令用來在標準輸出上顯示一段字符
echo [ -n ] 字符串其中選項n表示輸出文字後不換行;字符串能加引號,也能不加引號
echo "the echo command test!"
echo "the echo command test!">filename 輸出內容到文件
用 echo 命令輸出加引號的字符串時,將字符串原樣輸出
用 echo 命令輸出不加引號的字符串時,將字符串中的各個單詞作爲字符串輸出,各字符串之間用一個空格分割

八、grep命令:

grep 同時滿足多個關鍵字和滿足任意關鍵字,是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 
  配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,顯示完自動退
  出命令
grep [options]  
參數:  
[options]參數:
-c:只輸出匹配行的計數
-I:不區分大 小寫(只適用於單字符)
-h:查詢多文件時不顯示文件名
-l:查詢多文件時只輸出包含匹配字符的文件名
-n:顯示匹配行及 行號
-s:不顯示不存在或無匹配文本的錯誤信息
-v:顯示不包含匹配文本的所有行
-A: 顯示匹配行及前面多少行, 如: -A3, 則表示顯示匹配行及前3行
-B: 顯示匹配行及後面多少行, 如: -B3, 則表示顯示匹配行及後3行
-C: 顯示匹配行前後多少行, 如: -C3, 則表示顯示批量行前後3行
pattern正則表達式主要參數:
:忽略正則表達式中特殊字符的原有含義
^:匹配正則表達式的開始行
$: 匹配正則表達式的結束行
<:從匹配正則表達 式的行開始
>:到匹配正則表達式的行結束
[ ]:單個字符,如[A]即A符合要求 
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 
。:所有的單個字符
- :有字符,長度可以爲0

grep -n "word" filename 查看文件包含條件的日誌,全部顯示出來(單引號或者雙引號都可以,不區分)
grep -E "word1|word2|word3" filename 滿足任意條件(word1、word2和word3之一)將匹配的內容全部打
  印出來
grep word1 filename | grep word2 |grep word3 必須同時滿足三個條件(word1、word2和word3)才匹配
  多管道,多次篩選
使用正則表達式 -E 選項
grep -E "[1-9]+" 或 egrep "[1-9]+"
grep -A100 'word' filename 顯示匹配行往後100行
grep -B100 'word' filename 顯示匹配行往前100行
grep -C100 'word' filename 顯示匹配行往前往後100行

九、sed命令:

sed 本身是一個管道命令,主要是以行爲單位進行處理,可以將數據行進行替換、刪除、新增、選取等特定工作
參數
-n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會被列出到螢幕上。但如果加
  上 -n 參數後,則只有經過sed 特殊處理的那一行(或者動作)纔會被列出來。
-p ∶列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運作~
-s ∶取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g

sed -n '5,10p' filename 只查看文件的第5行到第10行
sed -n '/2019-01-04 21:30:00/,/2019-01-04 22:30:30/p' filename 只查看文件包含時間段的區間內容

混合命令:

tail -n +92表示查詢92行之後的日誌
tail filename -n 300 -f 查看底部即最新300條日誌記錄,並實時刷新
tail -f filename | grep -E 'word1|word2|word3' 實時打印出匹配規則的文件內容(注意或符號前後最好
  不要有空格)
cat -n filename |grep “地形” | more 得到關鍵日誌的行號
cat -n filename |tail -n +92|head -n 20
grep 'nick' | tail filename -C 10 查看字符‘nick’前後10條日誌記錄, 大寫C
head -n 20 則表示在前面的查詢結果裏再查前20條記錄

附加:

vi filename 查看或編輯文件
查找文件內容關鍵字方法:
先 執行命令>:vi      filename
然後輸入>:   /查找字符串 
按n查找下一個

如查找nohup.out日誌文件的error關鍵字:
執行命令:vi nohup.out
輸入以下回車:/error
按n查找下一個
將實時日誌打印到指定文件:

將實時日誌打印到文件newlog.log內,方便查找
執行命令:tail  -f nohup.out   >newlog.log
備註:newlog.log文件可以不存在,命令執行時會自動新建


後臺回覆 學習資料 領取學習視頻


如有收穫,點個在看,誠摯感謝

本文分享自微信公衆號 - 猿天地(cxytiandi)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章