新聞中心
在信息化時代,大數(shù)據(jù)的時代下,數(shù)據(jù)分析與數(shù)據(jù)挖掘成為了眾多企業(yè)和科學(xué)研究的必修課。而日志信息的收集與處理也成為了其中的一個重要部分。Linux作為一種服務(wù)器操作系統(tǒng),日志信息的存儲和處理是其不可或缺的一部分。在本文中,我們將介紹如何使用Linux來統(tǒng)計日志信息。

10年的懷遠(yuǎn)網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整懷遠(yuǎn)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“懷遠(yuǎn)網(wǎng)站設(shè)計”,“懷遠(yuǎn)網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
1. 選擇日志文件
首先需要選擇要統(tǒng)計的日志文件。在Linux系統(tǒng)中,日志一般存放在/var/log目錄下。這里我們選擇系統(tǒng)日志文件/var/log/messages作為統(tǒng)計的對象。
2. 選擇統(tǒng)計工具
統(tǒng)計日志信息的方式有很多種,常見的有手動分析、文本搜索和log分析軟件等。在這里,我們介紹兩種常用的工具:grep和awk。
3. 使用grep命令統(tǒng)計日志信息
grep命令是一種文本搜索工具,能夠搜索文件內(nèi)容中包含指定字符的行,并輸出這些行。這個工具的使用非常方便,可以靈活地按照不同要求來搜索文件內(nèi)容。
3.1 查看關(guān)鍵字出現(xiàn)次數(shù)
要查看某個關(guān)鍵字在日志文件中出現(xiàn)的次數(shù),可以使用以下命令:
grep -c “關(guān)鍵字” /var/log/messages
其中,“關(guān)鍵字”就是需要查找的關(guān)鍵字,/var/log/messages為日志文件路徑。-c表示統(tǒng)計關(guān)鍵字出現(xiàn)的次數(shù)。
3.2 統(tǒng)計行數(shù)
要統(tǒng)計日志文件中總行數(shù),可以使用以下命令:
grep -c “^” /var/log/messages
其中,^表示每一行的開頭,這樣就可以很快地統(tǒng)計出總行數(shù)。
3.3 統(tǒng)計錯誤日志
要快速查找日志中的錯誤信息,可以使用以下命令:
grep “error” /var/log/messages
其中,error為需要查找的錯誤信息關(guān)鍵字。
4. 使用awk命令統(tǒng)計日志信息
awk命令是一種文本處理工具,可以根據(jù)指定的規(guī)則對文件內(nèi)容進(jìn)行分析和處理。它的使用比grep更加靈活,可以處理更加復(fù)雜的數(shù)據(jù)。
4.1 統(tǒng)計日志文件大小
要統(tǒng)計日志文件的大小,可以使用以下命令:
ls -l /var/log/messages | awk ‘{print $5}’
其中,ls -l表示列出文件的詳細(xì)信息,$5表示輸出第五個字段的內(nèi)容,也即是文件大小。
4.2 統(tǒng)計日志文件中某一列的總和
在一些業(yè)務(wù)場景中,我們需要統(tǒng)計日志文件中某一列的總和,這時可以使用以下命令:
awk ‘{sum+=$1} END {print sum}’ /var/log/messages
其中,$1表示之一列的內(nèi)容,sum+=$1表示累加每一行的之一列的內(nèi)容,END表示在文件處理結(jié)束后執(zhí)行一次操作,{print sum}表示輸出累加結(jié)果。
4.3 統(tǒng)計日志文件中某一列的更大值和最小值
有時候,我們需要統(tǒng)計日志文件中某一列的更大值和最小值,可以使用以下命令:
awk ‘BEGIN {max=0; min=0} {if (NR==1) {max=$1; min=$1}; if ($1>max) {max=$1}; if ($1
其中,BEGIN表示在處理文件前執(zhí)行一次操作,if判斷條件中NR==1表示當(dāng)前行是之一行,max=$1表示將之一列的內(nèi)容賦值給max,min=$1表示將之一列的內(nèi)容賦值給min;如果當(dāng)前行的之一列內(nèi)容大于max,則將該值賦值給max,如果當(dāng)前行的之一列內(nèi)容小于min,則將該值賦值給min。END表示在文件處理結(jié)束后執(zhí)行一次操作,{print max, min}表示輸出max和min的值。
:
本文介紹了如何使用Linux來統(tǒng)計日志信息,其中使用的工具包括grep和awk,從而方便快捷地對服務(wù)器日志進(jìn)行分析和處理。在使用這些工具時,需要根據(jù)不同的業(yè)務(wù)場景靈活運(yùn)用,才能更好地發(fā)揮其作用。
相關(guān)問題拓展閱讀:
- 如何實時查看linux下的日志
- 怎樣查看linux系統(tǒng)日志
如何實時查看linux下的日志
Linux日志文件在/var/log目錄下,可以通過命令查看日志文件。
1,cat messages可以查看某個日志文件。
2,要達(dá)到實時更新,可以通改尺過tail命令查看更新的數(shù)據(jù),例如tail -f messages。
3,tail命令參數(shù):
-f 循環(huán)讀取
-q 不顯示處理信息
-v 顯示詳細(xì)的處腔攜理信息
-c 顯示的伍殲伏字節(jié)數(shù)
-n 顯示行數(shù)
–pid=PID 與-f合用,表示在進(jìn)程ID,PID死掉之后結(jié)束.
-q, –quiet, –silent 從不輸出給出文件名的首部
-s, –sleep-interval=S 與-f合用,表示在每次反復(fù)的間隔休眠S秒。
怎樣查看linux系統(tǒng)日志
1、Linux下重要日志文件介紹
/var/log/boot.log
該文件記錄了系統(tǒng)在引導(dǎo)過程中發(fā)生的事件,就是Linux系統(tǒng)開機(jī)自檢過程顯示的信息,如圖1所示:
圖1 /var/log/boot.log示意
/var/log/cron
該日志文件記錄crontab守護(hù)進(jìn)程crond所派生的子進(jìn)程的動作,前面加上用戶、登錄時間和PID,以及派生出的進(jìn)程的動作。CMD的一個動作是cron派生出一個調(diào)度進(jìn)程的常見情況。REPLACE(替換)動作記錄用戶對它的cron文件的更新,該文件列出了要周期性執(zhí)行的任務(wù)調(diào)度。RELOAD動作在REPLACE動作后不久發(fā)生,這意味著cron注意到一個用戶的cron文件被更新而cron需要把它重新裝入內(nèi)存。該文件可能會查到一些反常的情況。該文件的示意請見圖2:
圖2 /var/log/cron文件示意
/var/log/maillog
該日志文件記錄了每一個發(fā)送到系統(tǒng)或從系統(tǒng)發(fā)出的電子郵件的活動。它可以用來查看用戶使用哪個系統(tǒng)發(fā)送工具或把數(shù)據(jù)發(fā)送到哪個系統(tǒng)。圖3所示是該日志文件的片段:
圖3 /var/log/maillog文件示意
該文件的格式是每一行包含日期、主機(jī)名、程序名,后面是包含PID或內(nèi)核標(biāo)識的方括號、一個冒號和一個空格,最后是消息。該文件有一個不足,就是被記錄的入侵企圖和成功的入侵事件,被淹沒在大量的正常進(jìn)程的記錄中。但該文件可以由/etc/syslog文件進(jìn)行定制。由/etc/syslog.conf配置文件決定系統(tǒng)如何寫入/var/messages。
/var/log/syslog
默認(rèn)Fedora不生成該日志文件,但可以配置/etc/syslog.conf讓系統(tǒng)生成該日志文件。它和/etc/log/messages日志文件不同,它只記錄警告信息,常常是系統(tǒng)出問題的信息,所以更應(yīng)該關(guān)注該文件。要讓系統(tǒng)生成該日志文件,在/etc/syslog.conf文件中加上:*.warning /var/log/syslog 該日志文件能記錄當(dāng)用戶登錄時login記錄下的錯誤口令、Sendmail的問題、su命令執(zhí)行失敗等信息。該日志文件記錄最近成功登錄的事件和最后一次不成功的登錄事件,由login生成。在每次用戶登錄時被查詢,該文件是二進(jìn)制文件,需要使用lastlog命令查看,根據(jù)UID排序顯示登錄名、端口號和上次登錄時間。如果某用戶從來沒有登錄過,就顯示為”**Never logged in**”。該命令只能以root權(quán)限執(zhí)行。簡單地輸入lastlog命令后就會看到類似圖4的信息:
圖4 lastlog命令的運(yùn)行結(jié)果
/var/log/wtmp
該日志文件永久記錄每個用戶登錄、注銷及系統(tǒng)的啟動、停機(jī)的事件。因此隨著系統(tǒng)正常運(yùn)行時間的增加,該文件的大小也會越來越大,增加的速度取決于系統(tǒng)用戶登錄的次數(shù)。該日志文件可以用來查看用戶的登錄記錄,last命令就通過訪問這個文件獲得這些信息,并以反序從后向前顯示用戶的登錄記錄,last也能根據(jù)用戶、終端tty或時間顯示相應(yīng)的記錄。
/var/run/utmp
該日志文件記錄有關(guān)當(dāng)前登錄的每個用戶的信息。因此這個文件會隨著用戶登錄和注銷系統(tǒng)而不斷變化,它只保留當(dāng)時聯(lián)機(jī)的用戶記錄,不會為用戶保留永久的記錄。系統(tǒng)中需要查詢當(dāng)前用戶狀態(tài)的程序,如 who、w、users、finger等就需要訪問這個文件。該日志文件并不能包括所有精確的信息,因為某些突發(fā)錯誤會終止用戶登錄會話,而系統(tǒng)沒有及時更新 utmp記錄,因此該日志文件的記錄不是百分之百值得信賴的。
以上提及的3個文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系統(tǒng)的關(guān)鍵文件,都記錄了用戶登錄的情況。這些文件的所有記錄都包含了時間戳。這些文件是按二進(jìn)制保存的,故不能用less、cat之類的命令直接查看這些文件,而是需要使用相關(guān)命令通過這些文件而查看。其中,utmp和wtmp文件的數(shù)據(jù)結(jié)構(gòu)是一樣的,而lastlog文件則使用另外的數(shù)據(jù)結(jié)構(gòu),關(guān)于它們的具體的數(shù)據(jù)結(jié)構(gòu)可以使用man命令查詢。
每次有一個用戶登錄時,login程序在文件lastlog中查看用戶的UID。如果存在,則把用戶上次登錄、注銷時間和主機(jī)名寫到標(biāo)準(zhǔn)輸出中,然后login程序在lastlog中記錄新的登錄時間,打開utmp文件并插入用戶的utmp記錄。該記錄一直用到用戶登錄退出時刪除。utmp文件被各種命令使用,包括who、w、users和finger。
下一步,login程序打開文件wtmp附加用戶的utmp記錄。當(dāng)用戶登錄退出時,具有更新時間戳的同一utmp記錄附加到文件中。wtmp文件被程序last使用。
/var/log/xferlog
該日志文件記錄FTP會話,可以顯示出用戶向FTP服務(wù)器或從服務(wù)器拷貝了什么文件。該文件會顯示用戶拷貝到服務(wù)器上的用來入侵服務(wù)器的惡意程序,以及該用戶拷貝了哪些文件供他使用。
該文件的格式為:之一個域是日期和時間,第二個域是下載文件所花費(fèi)的秒數(shù)、遠(yuǎn)程系統(tǒng)名稱、文件大小、本地路徑名、傳輸類型(a:ASCII,b:二進(jìn)制)、與壓縮相關(guān)的標(biāo)志或tar,或”_”(如果沒有壓縮的話)、傳輸方向(相對于服務(wù)器而言:i代表進(jìn),o代表出)、訪問模式(a:匿名,g:輸入口令,r:真實用戶)、用戶名、服務(wù)名(通常是ftp)、認(rèn)證方法(l:RFC931,或0),認(rèn)證用戶的ID或”*”。圖5是該文件的部分顯示:
圖5 /var/log/xferlog文件示意
2、Linux日志輸出查看方式
Linux下面提供了許多文本工具來查看和處理日志文件,下面給讀者提供一些比較常見和有用的工具。
dmesg
使用dmesg命令可以快速查看最后一次系統(tǒng)引導(dǎo)的引導(dǎo)日志。如圖6所示:
圖6 dmesg顯示結(jié)果
如上所示,通常它的內(nèi)容會很多,所以我們往往使用如下命令以分頁的方式顯示引導(dǎo)信息,如圖7所示:
# dmesg | more
成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)站設(shè)計服務(wù);成都創(chuàng)新互聯(lián)服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),小程序開發(fā),營銷網(wǎng)站建設(shè),網(wǎng)站改版,服務(wù)器托管租用等互聯(lián)網(wǎng)服務(wù)。
文章名稱:如何用Linux統(tǒng)計日志信息? (linux統(tǒng)計每天日志)
轉(zhuǎn)載來于:http://m.fisionsoft.com.cn/article/cossioc.html


咨詢
建站咨詢
