分析日志linux命令 linux日志詳解

Linux查看系統(tǒng)日志的一些常用命令

last

創(chuàng)新互聯(lián)于2013年開始,先為上黨等服務(wù)建站,上黨等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為上黨企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

-a 把從何處登入系統(tǒng)的主機名稱或ip地址,顯示在最后一行。

-d 指定記錄文件。指定記錄文件。將IP地址轉(zhuǎn)換成主機名稱。

-f 記錄文件 指定記錄文件。

-n 顯示列數(shù)或-顯示列數(shù) 設(shè)置列出名單的顯示列數(shù)。

-R 不顯示登入系統(tǒng)的主機名稱或IP地址。

-x 顯示系統(tǒng)關(guān)機,重新開機,以及執(zhí)行等級的改變等信息

以下看所有的重啟、關(guān)機記錄

last | grep reboot

last | grep shutdown

history

列出所有的歷史記錄:

[zzs@Linux] # history

只列出最近10條記錄:

[zzs@linux] # history 10 (注,history和10中間有空格)

使用命令記錄號碼執(zhí)行命令,執(zhí)行歷史清單中的第99條命令

[zzs@linux] #!99 (!和99中間沒有空格)

重復(fù)執(zhí)行上一個命令

[zzs@linux] #!!

執(zhí)行最后一次以rpm開頭的'命令(!? ?代表的是字符串,這個String可以隨便輸,Shell會從最后一條歷史命令向前搜索,最先匹配的一條命令將會得到執(zhí)行。)

[zzs@linux] #!rpm

逐屏列出所有的歷史記錄:

[zzs@linux]# history | more

立即清空history當(dāng)前所有歷史命令的記錄

[zzs@linux] #history -c

cat, tail 和 watch

系統(tǒng)所有的日志都在 /var/log 下面自己看(具體用途可以自己查,附錄列出一些常用的日志)

cat /var/log/syslog 等

cat /var/log/*.log

tail -f

如果日志在更新,如何實時查看 tail -f /var/log/messages

還可以使用 watch -d -n 1 cat /var/log/messages

-d表示高亮不同的地方,-n表示多少秒刷新一次。

該指令,不會直接返回命令行,而是實時打印日志文件中新增加的內(nèi)容,

這一特性,對于查看日志是非常有效的。如果想終止輸出,按 Ctrl+C 即可。

除此之外還有more, less ,dmesg|more,這里就不作一一列舉了,因為命令太多了,關(guān)鍵看個人喜好和業(yè)務(wù)需求.個人常用的就是以上那些

linux日志文件說明

/var/log/message 系統(tǒng)啟動后的信息和錯誤日志,是Red Hat Linux中最常用的日志之一

/var/log/secure 與安全相關(guān)的日志信息

/var/log/maillog 與郵件相關(guān)的日志信息

/var/log/cron 與定時任務(wù)相關(guān)的日志信息

/var/log/spooler 與UUCP和news設(shè)備相關(guān)的日志信息

/var/log/boot.log 守護進程啟動和停止相關(guān)的日志消息

/var/log/wtmp 該日志文件永久記錄每個用戶登錄、注銷及系統(tǒng)的啟動、停機的事件

linux查看日志命令

linux查看日志命令:

tail:

-n是顯示行號;相當(dāng)于nl命令;例子如下:

tail -100f test.log實時監(jiān)控100行日志。

tail -n 10 test.log查詢?nèi)罩疚膊孔詈?0行的日志。

tail -n +10 test.log查詢10行之后的所有日志。

head:

跟tail是相反的,tail是看后多少行日志;例子如下:

head -n 10 test.log查詢?nèi)罩疚募械念^10行日志。

head -n -10 test.log查詢?nèi)罩疚募俗詈?0行的其他所有日志。

cat:

tac是倒序查看,是cat單詞反寫;例子如下:

cat -n test.log |grep "debug"查詢關(guān)鍵字的日志。

命令功能:

tail用于顯示指定文件末尾內(nèi)容,不指定文件時,作為輸入信息進行處理。常用于查看日志文件后多少行日志信息。

使用tail -f可以查看動態(tài)日志文件,tail -f filename可以把filename里最尾部的內(nèi)容顯示在屏幕上,并且不斷刷新,使你看到最新的文件內(nèi)容。

tail -n行數(shù)可以顯示指定行數(shù)信息。

Linux常見日志統(tǒng)計分析命令

在上文中,我們已經(jīng)詳細介紹 linux 三劍客的基本使用,接下來我們看看具體在性能測試領(lǐng)域的運用,本文主要介紹的是在 Tomcat 和 Nginx access日志的統(tǒng)計分析。

server.xml 使用配置方式,%D-請求時間,%F-響應(yīng)時間

字段說明如下:

日志樣例:

使用默認 combined 的經(jīng)典格式上擴展 response_timeupstream_response_time

nginx.conf 使用配置方式:

字段說明如下:

日志示例:

為了能理解 AWK 程序,我們下面概述其基本知識。

模式( pattern ) 用于匹配輸入中的每行文本。對于匹配上的每行文本,awk 都執(zhí)行對應(yīng)的 動作( action )。模式和動作之間使用花括號隔開。awk 順序掃描每一行文本,并使用 記錄分隔符(一般是換行符)將讀到的每一行作為 記錄,使用 域分隔符( 一般是空格符或制表符 ) 將一行文本分割為多個 域, 每個域分別可以使用 2, … 表示。1 表示第一個域,表示第二個域,n 表示第 n 個域。 $0 表示整個記錄。模式或動作都可以不指定,缺省模式的情況下,將匹配所有行。缺省動作的情況下,將執(zhí)行動作 {print},即打印整個記錄。

此處使用Nginx access.log 舉例,Tomcat 日志自己舉一反三。 使用 awk 分解出Nginx access日志中的信息

以此類推…… 當(dāng)我們使用默認的域分割符時,我們可以從日志中解析出下面不同類型的信息:

我們不難發(fā)現(xiàn),僅使用默認的域分隔符,不方便解析出請求行、引用頁和瀏覽器類型等其他信息,因為這些信息之中包含不確定個數(shù)的空格。 因此,我們需要把域分隔符修改為 “ ,就能夠輕松讀出這些信息。

注意:這里為了避免 Linux Shell 誤解 “ 為字符串開始,我們使用了反斜杠,轉(zhuǎn)義了 “ 。 現(xiàn)在,我們已經(jīng)掌握了 awk 的基本知識,以及它是怎樣解析日志的。

此處使用Nginx access.log 舉例,Tomcat 日志自己舉一反三。

如果我們想知道那些類型的瀏覽器訪問過網(wǎng)站,并按出現(xiàn)的次數(shù)倒序排列,我可以使用下面的命令:

此命令行首先解析出瀏覽器域,然后使用管道將輸出作為第一個 sort 命令的輸入。第一個 sort 命令主要是為了方便 uniq 命令統(tǒng)計出不同瀏覽器出現(xiàn)的次數(shù)。最后一個 sort 命令將把之前的統(tǒng)計結(jié)果倒序排列并輸出。

我們可以使用下面的命令行,統(tǒng)計服務(wù)器返回的狀態(tài)碼,發(fā)現(xiàn)系統(tǒng)可能存在的問題。

正常情況下,狀態(tài)碼 200 或 30x 應(yīng)該是出現(xiàn)次數(shù)最多的。40x 一般表示客戶端訪問問題。50x 一般表示服務(wù)器端問題。 下面是一些常見的狀態(tài)碼:

HTTP 協(xié)議狀態(tài)碼定義可以參閱:

查找并顯示所有狀態(tài)碼為 404 的請求

統(tǒng)計所有狀態(tài)碼為 404 的請求

現(xiàn)在我們假設(shè)某個請求 ( 例如 : URI: /path/to/notfound ) 產(chǎn)生了大量的 404 錯誤,我們可以通過下面的命令找到這個請求是來自于哪一個引用頁,和來自于什么瀏覽器。

有時候會發(fā)現(xiàn)其他網(wǎng)站出于某種原因,在他們的網(wǎng)站上使用保存在自己網(wǎng)站上的圖片。如果您想知道究竟是誰未經(jīng)授權(quán)使用自己網(wǎng)站上的圖片,我們可以使用下面的命令:

注意:使用前,將 修改為自己網(wǎng)站的域名。

統(tǒng)計共有多少個不同的 IP 訪問:

統(tǒng)計每一個 IP 訪問了多少個頁面:

將每個 IP 訪問的頁面數(shù)進行從小到大排序:

統(tǒng)計 2018 年 8 月 31 日 14 時內(nèi)有多少 IP 訪問 :

統(tǒng)計訪問最多的前十個 IP 地址

查看某一個 IP訪問了哪些頁面:

統(tǒng)計某個 IP 的詳細訪問情況,按訪問頻率排序

列出傳輸大小最大的幾個文件

列出輸出大于 204800 byte ( 200kb) 的頁面以及對應(yīng)頁面發(fā)生次數(shù)

列出訪問最頻的頁面(TOP100)

列出訪問最頻的頁面([排除php頁面】(TOP100)

列出頁面訪問次數(shù)超過100次的頁面

列出最近1000條記錄,訪問量最高的頁面

統(tǒng)計每分鐘的請求數(shù),top100的時間點(精確到分鐘)

統(tǒng)計每小時的請求數(shù),top100的時間點(精確到小時)

統(tǒng)計每秒的請求數(shù),top100的時間點(精確到秒)

統(tǒng)計當(dāng)天的 pv

說明:

可以使用下面的命令統(tǒng)計出所有響應(yīng)時間超過 3 秒的日志記錄。

注意:NF 是當(dāng)前記錄中域的個數(shù)。$NF 即最后一個域。

列出php頁面請求時間超過3秒的頁面,并統(tǒng)計其出現(xiàn)的次數(shù),顯示前100條

列出相應(yīng)時間超過 5 秒的請求,顯示前20條

統(tǒng)計蜘蛛抓取次數(shù)

統(tǒng)計蜘蛛抓取404的次數(shù)

通過本文的介紹,我相信同學(xué)們一定會發(fā)現(xiàn) linux三劍客強大之處。在命令行中,它還能夠接受,和執(zhí)行外部的 AWK 程序文件,可以對文本信息進行非常復(fù)雜的處理,可以說“只有想不到的,沒有它做不到的”。

當(dāng)前文章:分析日志linux命令 linux日志詳解
文章鏈接:http://muchs.cn/article24/dohsgje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、電子商務(wù)網(wǎng)站維護、軟件開發(fā)、網(wǎng)站排名、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司