我們的應用運行在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 行