Linux常用的日誌查看命令

 

對於大型網站來說,很多網站在可用性方面提出4個9或者5個9的要求,如果是4個9,那麼網站全年的不可用時間不能超過52.6分鐘,如果是5個9,全年不可用時間不能超過5.2分鐘。這其實是很難的,無論多麼厲害的程序員,他寫過的代碼不可能完全沒有問題。而且有些時候,在線上發生問題的時候,我們大部分時間都用在排查並定位問題上了。一個問題可能解決起來也就是幾分鐘,但是排查起來卻要花費幾個小時。

在日常工作中,如果我們遇到線上問題,一般的處理步驟應該是先保留現場,然後再考慮回滾,之後再是解決問題。那麼,保理現場保留的是什麼的?至少要包括當時機器上面的線程的dump、堆內存的dump還有最重要的就是日誌。因爲很多時候,日誌可能是我們瞭解程序執行的唯一途徑。

有了日誌,還要掌握一些命令,才能更好的、更高效的定位問題,因爲一旦發生線上問題的時候,真的是分秒必爭。本文,爲你總結了幾個常用的命令和簡單用法,以及幾個小案例來運用這些命令。

在介紹之前我還要強調一點,有很多朋友說,我不需要會這麼多命令,一個vim(vi)命令就夠我用了,請不要在服務器上直接對日誌文件進行vim(vi)操作,這樣可能會導致機器直接掛掉。

Ø  cat 查看文件的內容

cat命令是一個顯示文本文件內容的便捷工具,如果一個日誌文件比較小,可以直接使用cat命令將其內容打印出來,進行查看,但是,對於較大的日誌文件,請不要這樣做,打開一個過大的文件可能會佔用過多的系統資源,從而影響系統對外的服務。

命令格式:

cat [選項] [文件]...

Ø  more 分頁顯示文件

cat的缺點在於,一旦執行後,便無法再進行交互和控制,而more命令可以分頁的展現文件內容,按enter鍵顯示文件下一行,按空格鍵便顯示下一頁,按 f鍵顯示下一屏內容,按b鍵顯示上一屏內容。

命令格式:

more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]

Ø  less 分頁顯示文件

less 工具也是對文件或其它輸出進行分頁顯示的工具,應該說是linux正統查看文件內容的工具,功能極其強大。less 的用法比起 more 更加的有彈性。在 more 的時候,我們並沒有辦法向前面翻, 只能往後面看,但若使用了 less 時,就可以使用 [pageup] [pagedown] 等按鍵的功能來往前往後翻看文件,更容易用來查看一個文件的內容!除此之外,在 less 裏頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜。

命令格式:

less [參數]  文件

Ø  tail 顯示文件尾

使用tail命令能夠查看到文件最後幾行,這對於日誌文件非常有效,因爲日誌文件常常是追加寫入的,新寫入的內容處於文件的末尾位置。

使用tail命令的-f選項可以方便的查閱正在改變的日誌文件,tail -f filename會把filename裏最尾部的內容顯示在屏幕上,並且不但刷新,使你看到最新的文件內容. 

命令格式;

tail[必要參數][選擇參數][文件]   

Ø  head 顯示文件頭

與tail命令類似,但是不同的是head命令用於顯示文件開頭的一組行。

命令格式:

head [參數]... [文件]...  

Ø  sort 內容排序

一個文件中包含有衆多的行,經常需要對這些行中的某一列進行排序操作, sort命令的作用便是對數據進行排序。

命令格式:

sort [參數][文件]

Ø  wc 字符統計

wc命令可以用來統計指定文件中的字符數,字數,行數,並輸出統計結果。

命令格式:

wc [選項]文件...

Ø  uniq 查看重複出現的行

uniq命令可以用來顯示文件中行重複的次數,或者顯示僅出現一次的行,以及僅僅顯示重複出現的行,並且,uniq的去重針對的只是連續的兩行,因此它常常與sort結合起來使用。

命令格式:

uniq[選項][參數]

Ø  curl URL訪問工具

要想在命令行下通過HTTP協議訪問網頁文檔,就不得不用到一個工具,這便是curl,它支持HTTP,HTTPS,FTP,FTPS,Telnet等多種協議,常被用來在命令行下抓取網頁和監控WEB服務器狀態。

命令格式:

curl [option] [url]

Ø  查看請求訪問量

對於在線運行的系統來說,常常會碰到各種不懷好意的惡意攻擊行爲,其中比較常見的便是HTTP flood,也稱爲CC攻擊。如何能夠快速的定位到攻擊,並迅速響應,便成爲開發運維人員必備的技能。定位問題最快捷的辦法,便是登錄到相應的應用,查看訪問日誌,找到相應的攻擊來源,如訪問量排名前10的ip地址:

cat access.log |cut -f1 -d " " | sort | uniq -c | sort -k 1 -n-r | head -10

頁面訪問量排名前10的url:

cat access.log |cut –f4 -d " " | sort | uniq -c | sort -k 1 -n -r | head -10

Ø  查看最耗時的頁面

對於開發人員來說,頁面的響應時間是非常值得關注的,因爲這直接關係到用戶能否快速的看到他想看到的內容。因此,開發人員常常需要將響應慢的頁面找出來,進行優化:

cat access.log | sort -k 2 -n -r | head -10

Ø  統計404頁面佔比

對於請求的返回碼,有些時候也是需要關注的,比如,如果404請求佔比過多, 要麼就是有惡意攻擊者在進行掃描,要麼就是系統出現問題了,同樣,對於 500的請求也是如此,可以通過如下命令來查看404請求的佔比:

export total_line=`wc-l access.log | cut -f1 -d " "` && export not_found_line=`awk '$6=='404'{print $6}' access.log | wc -l` && expr $not_found_line \* 100 / $total_line

 

關注微信公衆號和今日頭條,精彩文章持續更新中。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章