Linux查看日志的命令有很多,比如tail、判局賀cat、tac、head、echo等,今天給大家介紹幾種常用的方法:
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、牡丹江ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的牡丹江網(wǎng)站制作公司
1、tail-實(shí)時(shí)查看變化的日志
命令格式:tail [必要參數(shù)][選擇參數(shù)][文件]
-f:循環(huán)讀取
-q:不顯示處理信息
-v:顯示詳細(xì)的處理信息
-c數(shù)目:顯示的字節(jié)數(shù)
-n行數(shù):顯示行數(shù)
-q, --quiet, --silent:從不輸出給出文件名的首部
-s, --sleep-interval=S:與-f合用,表示在每次反復(fù)的間隔休眠S秒
2、head
跟tail相反,head是看日志的前多少行
head -n 10 test.log:查詢?nèi)罩疚募械那?0行日志;
head -n -10 test.log:查詢?nèi)罩疚募俗詈?0行的其他所有日志;
3、cat-搜索關(guān)鍵字附近的日志
cat是由第一行到最臘李后掘派一行連續(xù)顯示在屏幕上
最常用的命令:cat -n filename | grep "關(guān)鍵字"
cat app.log | grep -C 5 '關(guān)鍵字':顯示日志里匹配字串那行以及前后5行;
cat app.log | grep -B 5 '關(guān)鍵字':顯示匹配字串及前5行;
cat app.log | grep -A 5 '關(guān)鍵字':顯示匹配字串及后5行;
4、more
more命令是一個(gè)基于vi編輯器文本過(guò)濾器,它以全屏幕的方式按頁(yè)顯示文本文件的內(nèi)容,支持vi中的關(guān)鍵字定位操作。
more的語(yǔ)法:more 文件名
linux查看日志命令:
tail:
-n是顯示行號(hào);相當(dāng)于nl命令;例子如下:
tail -100f test.log實(shí)時(shí)監(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單詞反寫(xiě);例子如下:
cat -n test.log |grep "debug"查詢關(guān)鍵字的日志。
命令功能:
tail用于顯示指定文件末尾內(nèi)容,不指定文稿廳衫件時(shí),作為輸入信息進(jìn)行處理。常用于查看日志文鍵腔件后多少行日志信息。
使用tail -f可以查看動(dòng)態(tài)日志文件,tail -f filename可以把filename里最尾部的內(nèi)容顯示在屏幕上,并且不斷刷新,使你看到最新的文件內(nèi)容。
tail -n行數(shù)可以顯示指定行數(shù)信息。
RedHat Linux常見(jiàn)的日志文件詳述如下
◆/var/log/boot.log
該文件記錄了系統(tǒng)在引導(dǎo)過(guò)程中發(fā)生的事件,就是Linux系統(tǒng)開(kāi)機(jī)自檢過(guò)程顯示的信息。
◆/var/log/cron
該日志文空物碼件記錄crontab守護(hù)進(jìn)程crond所派生的子進(jìn)程的動(dòng)作,前面加上用戶、登錄時(shí)間和PID,以及派生出的進(jìn)程的動(dòng)作。
CMD的一個(gè)動(dòng)作是cron派生出一個(gè)調(diào)度進(jìn)程的常見(jiàn)情況。
REPLACE(替換)動(dòng)作記錄用戶對(duì)它的cron文件的更新,該文件列出了要周期性執(zhí)行的任務(wù)調(diào)度。
RELOAD動(dòng)作在REPLACE動(dòng)作后不久發(fā)生,這意味著cron注意到一個(gè)用戶的cron文件被更新而cron需要把它重新裝入內(nèi)存。
該文件可能會(huì)查到一些反常的情況。
◆/var/log/maillog
該日志文件記錄了每一個(gè)發(fā)送到系統(tǒng)或從系統(tǒng)發(fā)出的電子郵件的活動(dòng)。
它可以用來(lái)查看用戶使用哪個(gè)系統(tǒng)發(fā)送工具或把數(shù)據(jù)發(fā)送到哪個(gè)系統(tǒng)。
該文件的格式是每一行包含日期、主機(jī)名、程序名,后面是包含PID或內(nèi)核標(biāo)識(shí)的方括號(hào)、一個(gè)冒號(hào)和一個(gè)空格,最后是消息。
該文件有一個(gè)不足,就是被記錄的入侵企圖和成功的入侵事件,被淹沒(méi)在大量的正常進(jìn)程的記錄中。
但該文件可以由/etc/syslog文件進(jìn)行定制。
由/etc/syslog.conf配置文件決定系統(tǒng)如何寫(xiě)入/var/messages。
有關(guān)如何配置/etc/syslog.conf文件決定系統(tǒng)日志記錄的行為,將在后面詳細(xì)敘述。
◆/var/log/syslog
默認(rèn)RedHat Linux不生成該日志文件,但可以配置/etc/syslog.conf讓系統(tǒng)生成該日志螞弊文件。
它和/etc/log/messages日志文件不同,它只記錄警告信息,常常是系統(tǒng)出問(wèn)題的信息,所以更應(yīng)該關(guān)注該文件。
要讓系統(tǒng)生成該日志文件,在/etc/syslog.conf文件中加上:*.warning /var/log/syslog 該日志文件能記錄當(dāng)用戶登錄時(shí)login記錄下的錯(cuò)誤口令、Sendmail的問(wèn)題、su命令執(zhí)行失敗等信息。
該日志文件記錄最近成功登錄的事件和最后一次不成功的登錄事件,由login生成。斗哪
在每次用戶登錄時(shí)被查詢,該文件是二進(jìn)制文件,需要使用lastlog命令查看,根據(jù)UID排序顯示登錄名、端口號(hào)和上次登錄時(shí)間。
如果某用戶從來(lái)沒(méi)有登錄過(guò),就顯示為"**Never logged in**"。
該命令只能以root權(quán)限執(zhí)行。
系統(tǒng)賬戶諸如bin、daemon、adm、uucp、mail等決不應(yīng)該登錄,如果發(fā)現(xiàn)這些賬戶已經(jīng)登錄,就說(shuō)明系統(tǒng)可能已經(jīng)被入侵了。
若發(fā)現(xiàn)記錄的時(shí)間不是用戶上次登錄的時(shí)間,則說(shuō)明該用戶的賬戶已經(jīng)泄密了。
◆/var/log/wtmp
該日志文件永久記錄每個(gè)用戶登錄、注銷及系統(tǒng)的啟動(dòng)、停機(jī)的事件。
因此隨著系統(tǒng)正常運(yùn)行時(shí)間的增加,該文件的大小也會(huì)越來(lái)越大,增加的速度取決于系統(tǒng)用戶登錄的次數(shù)。
該日志文件可以用來(lái)查看用戶的登錄記錄,last命令就通過(guò)訪問(wèn)這個(gè)文件獲得這些信息,并以反序從后向前顯示用戶的登錄記錄,last也能根據(jù)用戶、終端 tty或時(shí)間顯示相應(yīng)的記錄。
命令last有兩個(gè)可選參數(shù):
last -u 用戶名 顯示用戶上次登錄的情況。
last -t 天數(shù) 顯示指定天數(shù)之前的用戶登錄情況。
◆/var/run/utmp
該日志文件記錄有關(guān)當(dāng)前登錄的每個(gè)用戶的信息。
因此這個(gè)文件會(huì)隨著用戶登錄和注銷系統(tǒng)而不斷變化,它只保留當(dāng)時(shí)聯(lián)機(jī)的用戶記錄,不會(huì)為用戶保留永久的記錄。
系統(tǒng)中需要查詢當(dāng)前用戶狀態(tài)的程序,如 who、w、users、finger等就需要訪問(wèn)這個(gè)文件。
該日志文件并不能包括所有精確的信息,因?yàn)槟承┩话l(fā)錯(cuò)誤會(huì)終止用戶登錄會(huì)話,而系統(tǒng)沒(méi)有及時(shí)更新 utmp記錄,因此該日志文件的記錄不是百分之百值得信賴的。
以上提及的3個(gè)文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系統(tǒng)的關(guān)鍵文件,都記錄了用戶登錄的情況。
這些文件的所有記錄都包含了時(shí)間戳。
這些文件是按二進(jìn)制保存的,故不能用less、cat之類的命令直接查看這些文件,而是需要使用相關(guān)命令通過(guò)這些文件而查看。
其中,utmp和wtmp文件的數(shù)據(jù)結(jié)構(gòu)是一樣的,而lastlog文件則使用另外的數(shù)據(jù)結(jié)構(gòu),關(guān)于它們的具體的數(shù)據(jù)結(jié)構(gòu)可以使用man命令查詢。
每次有一個(gè)用戶登錄時(shí),login程序在文件lastlog中查看用戶的UID。
如果存在,則把用戶上次登錄、注銷時(shí)間和主機(jī)名寫(xiě)到標(biāo)準(zhǔn)輸出中,然后login程序在lastlog中記錄新的登錄時(shí)間,打開(kāi)utmp文件并插入用戶的utmp記錄。
該記錄一直用到用戶登錄退出時(shí)刪除。
utmp文件被各種命令使用,包括who、w、users和finger。
下一步,login程序打開(kāi)文件wtmp附加用戶的utmp記錄。
當(dāng)用戶登錄退出時(shí),具有更新時(shí)間戳的同一utmp記錄附加到文件中。
wtmp文件被程序last使用。
◆/var/log/xferlog
該日志文件記錄FTP會(huì)話,可以顯示出用戶向FTP服務(wù)器或從服務(wù)器拷貝了什么文件。
該文件會(huì)顯示用戶拷貝到服務(wù)器上的用來(lái)入侵服務(wù)器的惡意程序,以及該用戶拷貝了哪些文件供他使用。
該文件的格式為:第一個(gè)域是日期和時(shí)間,第二個(gè)域是下載文件所花費(fèi)的秒數(shù)、遠(yuǎn)程系統(tǒng)名稱、文件大小、本地路徑名、傳輸類型(a:ASCII,b:二進(jìn)制)、與壓縮相關(guān)的標(biāo)志或tar,或"_"(如果沒(méi)有壓縮的話)、傳輸方向(相對(duì)于服務(wù)器而言:i代表進(jìn),o代表出)、訪問(wèn)模式(a:匿名,g:輸入口令,r:真實(shí)用戶)、用戶名、服務(wù)名(通常是ftp)、認(rèn)證方法(l:RFC931,或0),認(rèn)證用戶的ID或"*"。
RedHat Linux默認(rèn)沒(méi)有記錄該日志文件。
要啟用該日志文件,必須在/etc/syslog.conf文件中添加一行:kern.* /var/log/kernlog 。
這樣就啟用了向/var/log/kernlog文件中記錄所有內(nèi)核消息的功能。
該文件記錄了系統(tǒng)啟動(dòng)時(shí)加載設(shè)備或使用設(shè)備的情況。
一般是正常的操作,但如果記錄了沒(méi)有授權(quán)的用戶進(jìn)行的這些操作,就要注意,因?yàn)橛锌赡苓@就是惡意用戶的行為。
該日志文件記錄了X-Window啟動(dòng)的情況。
另外,除了/var/log/外,惡意用戶也可能在別的地方留下痕跡,應(yīng)該注意以下幾個(gè)地方:root和其他賬戶的shell歷史文件;用戶的各種郵箱,如.sent、mbox,以及存放在/var/spool/mail/ 和 /var/spool/mqueue中的郵箱;臨時(shí)文件/tmp、/usr/tmp、/var/tmp;隱藏的目錄;其他惡意用戶創(chuàng)建的文件,通常是以"."開(kāi)頭的具有隱藏屬性的文件等。
last
-a 把從何處登入系統(tǒng)的主機(jī)名稱或ip地址,顯示在最后一行。
-d 指定記錄文件。指定記錄文件。將IP地址轉(zhuǎn)換成主機(jī)名稱。
-f 記錄文件 指定記錄文件。
-n 顯示列數(shù)或-顯示列數(shù) 設(shè)置列出名單的顯示列數(shù)。
-R 不顯示登入系統(tǒng)的主機(jī)名稱或IP地址。
-x 顯示系統(tǒng)關(guān)機(jī),重新開(kāi)機(jī),以及執(zhí)行等級(jí)的改變等信息
以下看所有的重啟、關(guān)機(jī)記錄
last | grep reboot
last | grep shutdown
history
列出所有的歷史記錄:
[zzs@Linux] # history
只列出最近10條記錄:
[zzs@linux] # history 10 (注,history和10中間有空格)
使用命令記錄號(hào)碼執(zhí)行命令,執(zhí)行歷史清單中的第99條命令
[zzs@linux] #!99 (!和99中間沒(méi)有空格)
重復(fù)執(zhí)行上一襪謹(jǐn)高個(gè)命令
[zzs@linux] #!!
執(zhí)行最后一次以rpm開(kāi)頭的'命令(!? ?代表的是字符串,這個(gè)String可以隨便輸,Shell會(huì)從最后一條歷史命令向前搜索,最先匹配的一條命令將會(huì)得到執(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
如果日志在更新,如何實(shí)時(shí)查看 tail -f /var/log/messages
還可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
該指令,不會(huì)直接返回命令行,而是實(shí)時(shí)打印日志文件中新增加的內(nèi)容,
這一特性,對(duì)于查看日志是非常有效的。如果想終止輸出,按 Ctrl+C 即可。
除此之外還有more, less ,dmesg|more,這里就不作一告尺一列舉了,因?yàn)槊钐嗔?關(guān)鍵看個(gè)人喜好和業(yè)務(wù)需求.個(gè)人常用的就是以上那些
linux日志文件說(shuō)明
/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)的日志消息
/var/log/wtmp 該日志文件永久記錄每個(gè)用戶登錄、注銷及系統(tǒng)的啟動(dòng)、停機(jī)的事件