liunx下查看日誌最實用命令和方法

 
1.業務系統訪問量不是很大的時候,使用這個,有bug的地方操做下,直接看最後操做的日誌,就是你剛纔操做的地方,好好查bug吧
tail  -fn100  catalina.log   查詢日誌尾部最後100行的日誌,而且隨文件;
 
2.查看服務器啓動狀況,服務器啓動報錯,直接看前n行便可
head -n100  catalina.log   查詢日誌文件中的頭10行日誌;
 
3.按照關鍵字查找日誌 (知道程序出問題的模塊,並且有日誌關鍵字的能夠用此方法)
 
<1>.找到發錯錯誤異常的行號
好比咱們日誌中關鍵字error表示錯誤
grep "error" -n access.log
或者cat -n catalina.log |grep "error" 
 
這時候就會顯示不少匹配的行數,而後找到大約發生錯誤時間的對應行號
 
<2>經過行號查詢對應行先後的內容
例如:獲得"error"關鍵字所在的行號是102行. 此時若是我想查看這個關鍵字前10行和後10行的日誌:
cat -n catalina.log |tail -n +92|head -n 20
tail -n +92表示查詢92行以後的日誌
head -n 20 則表示在前面的查詢結果裏再查前20條記錄
 
或者 sed -n "92,112p" catalina.log
sed -n "開始行,結束行p" 文件名 查看文件多少行到多少行內容
 
4.經過時間查找 (不知道程序那裏出問題了,只知道出問題的時間)
查詢一個時間字符串是否存在
grep 「2017-06-21 10:00」 test.log
查詢時間段內的日誌
sed -n '/2017-06-21 09:25:55/,/2017-06-21 14:25:55/p' access.log
這個方法網上都說這個搞,但實際上我實踐的時候不能查出來什麼,不知道爲何,若是不行只能查時間字符串
grep "2017-06-21 09:25:55" -n access.log
 
cat -n test.log |grep "error" |more
5.查詢日誌結果若是太多能夠分頁到導出文件
<1>使用more和less命令, 如: cat -n test.log |grep "error" |more     這樣就分頁打印了,經過點擊空格鍵翻頁
<2>使用 >look.txt 將其保存到文件中,到時能夠拉下這個文件分析.如:
cat -n test.log |grep "地形"  >look.txt
 
 
6.日誌管理工具,以上方式只能解決服務器單節點問題,多節點日誌分析不建議在服務器上一個個節點去查看,一般簡單的是運維定時合併同一業務類型日誌到某一個目錄
 
同時也有一些開源的日誌管理軟件能夠幫你管理日誌,很簡單的幫你實現分析,搜索
 
如開源的Graylog 2 Logstash Sumo Logic 收費的 Splunk  等
相關文章
相關標籤/搜索