Linux 查找日志命令大全


小弟最近在幫忙排查生產環境上的問題,所以需要看生產上的日志,好久沒摸過服務器了,特此記錄一下使用的Linux命令。

grep命令

grep命令是在linux下看日志時經常會用到的

grep:查找文件中包含指定文本的命令

比如:grep '123456789' 20211018.log ---輸出2021101801.log這個日志下包含123456789的記錄

當然grep肯定不止這么簡單,下面寫下常用到的~

grep '123456789' * ---輸出當前文件夾下所有包含123456789'的記錄

比如當前目錄 /home/logs/log-20211018,查找的是log-20211018文件夾下所有且包含123456789的記錄

grep -r '123456789' * ---輸出當前目錄以及子目錄下所有包含123456789'的記錄,r=Recursive遞歸

比如當前目錄 /home/logs/log-20211018,查找的是當前目錄和子目錄下所有且包含123456789的記錄

grep -l -r ‘energywise’ * ---輸出當前目錄及其子目錄下包含'123456789'行的記錄,但是不顯示匹配的行,只顯示匹配的文件。

grep -i 不分區大小寫

grep -v 顯示除匹配以外的內容(就是不包含的意思)

grep -n 顯示匹配的行並行顯示當前行數是多少

grep -c 顯示匹配的行數總和(注意是行數,如果一行匹配到兩個也算一行)

tail命令

tail命令用在測試環境比較多,可以查看實時日志信息,便於定位錯位。

tail -f 20211018.log ---實時查看20211018.log日志輸出

tail -n 100 20211018.log ---輸出20211018.log最新的100行

head命令

head命令用的不多,主要是看文件的頭幾行吧

hear -n 50 20211018.log ---輸出20211018.log前50行記錄

sed命令

生產環境的日志文件一般都是非常大的,要在一個很大的日志中搜索或者下載某部分內容相當不容易,此時可以用sed命令!

輸出某一段時間內的日志(日志輸出需要有時間的才可以)

sed -n '/2021-10-18 08:00/,/2021-10-18 10:00/p' 20211018.log

輸出某一段時間包含“xiaohu”的行數

sed -n '/2021-10-18 08:00/,/2021-10-18 10:00/p' 20211018.log | grep -c "xiaohu"

將某段時間內的日志保存到一個新文件中

sed -n '/2021-10-18 08:00/,/2021-10-18 10:00/p' 20211018.log > newlog.log

awk命令

這個命令很強大,目前我也沒用到過,之后會單獨學習一下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM