我們的應用運行在linux 上,很多同事對命令行操作有恐懼感,於是為了分析 linux 上程序的日志,采用的是 FTP+Ultraedit 方法。這種方式不方便、實時性不夠,也不夠專業。如果碰到幾百兆甚至上G 的日志文件,這種分析方式的效率也很成問題,尤其是需要實施跟蹤日志的情況下。
於是我把在 linux 上分析程序日志的幾個常用指令及其配合使用總結一下,希望對大家有所幫助。
指令介紹:
more :
作用:該指令,可以將文件的內容,從前向後,每次一屏,打印到終端屏幕上。
用法:
more filename
顯示一屏信息後,’ 空格’ 向下翻一屏,’ 回車’ 向下翻一行,’ q ‘ 退出。
cat :
作用:該指令本來的作用,是將多個文件的內容合並起來,打印到標准輸出,但最常見的用法是顯示一個文件的內容,但文件比較大的情況,屏幕會很快滾動,無法查看有效信息,建議使用 more 。
用法:
cat filename
grep :
作用:打印文件或者標准輸入中符合特定模式的行,該指令是從日志文件中檢索特定信息的最有效手段。
用法:
1、 基本用法
grep pattern filename
如:
grep “error” catalina.out
可以將 tomcat 日志 catalina.out 中所有包含 error 的行顯示出來
2、 使用正則表達式
grep -e “pattern” filename
如:
grep -e “[eE]rror” catalina.out
可以將 tomcat 日志 catalina.out 中所有包含 error 或者 Error 的行顯示出來
3、 常用選項
-i 匹配時忽略大小寫
-n 在打印的行前顯示該行在原文件中的行號
-v 該選項,將 grep 的默認行為翻轉,打印那些不包含特定模式的行
wc :
作用:統計文件中的行數、字數和字節數
用法:
wc filename
如:
[service@localhost threshold]$ wc nohup.out
9761028 76738200 1672741676 nohup.out
從前到後的三個數分別是行數、字數、字節數。
該指令比較常用的參數是 -l ,這個參數可以只統計行數
[service@localhost threshold]$ wc -l nohup.out
9761028 nohup.out
head:
作用:顯示文件的開頭 N 行
用法:
head -num filename
如:
head -100 catalina.out
顯示 catalina.out 的前 100 行
tail :
作用:顯示文件的最後 N 行,或者實時顯示文件中新增的內容。
用法:
1、 顯示文件最後 N 行
tail -num filename
如:
tail -100 catalina.out
則顯示 catalina.out 文件的最後 100 行
2、 實時顯示文件中新增內容
tail -f filename
如:
tail -f catalina.out
執行該指令,不會直接返回命令行,而是實時打印日志文件中新增加的內容,這一特性,對於查看日志是非常有效的。如果想終止輸出,按 Ctrl+C 即可