當(dāng)日志文件存儲(chǔ)日志很大時(shí),我們就不能用vi直接進(jìn)去查看日志,需要Linux的命令去完成我們的查看任務(wù).
Log位置:
/var/log/message 系統(tǒng)啟動(dòng)后的信息和錯(cuò)誤日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 與安全相關(guān)的日志信息
/var/log/maillog 與郵件相關(guān)的日志信息
/var/log/cron 與定時(shí)任務(wù)相關(guān)的日志信息
/var/log/spooler 與UUCP和news設(shè)備相關(guān)的日志信息
/var/log/boot.log 守護(hù)進(jìn)程啟動(dòng)和停止相關(guān)的日志消息
tail
參數(shù):
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
參數(shù)解釋:
-f 該參數(shù)用于監(jiān)視File文件增長(zhǎng)。
-c Number 從 Number 字節(jié)位置讀取指定文件
-n Number 從 Number 行位置讀取指定文件。
-m Number 從 Number 多字節(jié)字符位置讀取指定文件,比方你的文件假設(shè)包括中文字,假設(shè)指定-c參數(shù),可能導(dǎo)致截?cái)啵褂?m則會(huì)避免該問(wèn)題。
-b Number 從 Number 表示的512字節(jié)塊位置讀取指定文件。
-k Number 從 Number 表示的1KB塊位置讀取指定文件。
File 指定操作的目標(biāo)文件名稱
上述命令中,都涉及到number,假設(shè)不指定,默認(rèn)顯示10行。Number前面可使用正負(fù)號(hào),表示該偏移從頂部還是從尾部開(kāi)始計(jì)算。
tail可運(yùn)行文件一般在/usr/bin/以下。
實(shí)例:
1、tail -f filename
說(shuō)明:監(jiān)視filename文件的尾部?jī)?nèi)容(默認(rèn)10行,相當(dāng)于增加參數(shù) -n 10),刷新顯示在屏幕上。退出,按下CTRL+C。
2、tail -n 20 filename
說(shuō)明:顯示filename最后20行。
3、tail -r -n 10 filename
說(shuō)明:逆序顯示filename最后10行。
head
head 僅僅顯示前面幾行
head -n 10 test.log 查詢?nèi)罩疚募械念^10行日志;
head -n -10 test.log 查詢?nèi)罩疚募俗詈?0行的其他所有日志;
grep
grep [options]
主要參數(shù):
[options]主要參數(shù):
-c:只輸出匹配行的計(jì)數(shù)。
-I:不區(qū)分大 小寫(只適用于單字符)。
-h(huán):查詢多文件時(shí)不顯示文件名。
-l:查詢多文件時(shí)只輸出包含匹配字符的文件名。
-n:顯示匹配行及 行號(hào)。
-s:不顯示不存在或無(wú)匹配文本的錯(cuò)誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達(dá)式主要參數(shù):
: 忽略正則表達(dá)式中特殊字符的原有含義。
^:匹配正則表達(dá)式的開(kāi)始行。
$: 匹配正則表達(dá)式的結(jié)束行。
<:從匹配正則表達(dá) 式的行開(kāi)始。
>:到匹配正則表達(dá)式的行結(jié)束。
[ ]:?jiǎn)蝹€(gè)字符,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的單個(gè)字符。
- :有字符,長(zhǎng)度可以為0。
sed
用sed命令
sed -n '5,10p' filename 這樣你就可以只查看文件的第5行到第10行。
cat
cat主要有三大功能:
1.一次顯示整個(gè)文件。$ cat filename
2.從鍵盤創(chuàng)建一個(gè)文件。$ cat > filename
只能創(chuàng)建新文件,不能編輯已有文件.
3.將幾個(gè)文件合并為一個(gè)文件: $cat file1 file2 > file
參數(shù):
-n 或 --number 由 1 開(kāi)始對(duì)所有輸出的行數(shù)編號(hào)
-b 或 --number-nonblank 和 -n 相似,只不過(guò)對(duì)于空白行不編號(hào)
-s 或 --squeeze-blank 當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行
-v 或 --show-nonprinting
例:
把 textfile1 的檔案內(nèi)容加上行號(hào)后輸入 textfile2 這個(gè)檔案里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的檔案內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3
把test.txt文件扔進(jìn)垃圾箱,賦空值test.txt
cat /dev/null > /etc/test.txt
注意:>意思是創(chuàng)建,>>是追加。千萬(wàn)不要弄混了。
tac (反向列示)
tac 是將 cat 反寫過(guò)來(lái),所以他的功能就跟 cat 相反, cat 是由第一行到最后一行連續(xù)顯示在螢?zāi)簧希?
而 tac 則是由最后一行到第一行反向在螢?zāi)簧巷@示出來(lái)!
混合使用命令
A. tail web.2016-06-06.log -n 300 -f
查看底部即最新300條日志記錄,并實(shí)時(shí)刷新
B. grep 'nick' | tail web.2016-04-04.log -C 10
查看字符‘nick’前后10條日志記錄, 大寫C
C. cat -n test.log |tail -n +92|head -n 20
tail -n +92表示查詢92行之后的日志
head -n 20 則表示在前面的查詢結(jié)果里再查前20條記錄