??作為一名測試工程師,測試任務(wù)中和Linux打交道的地方有很多,比如查看日志、定位bug、修改文件、部署環(huán)境等。產(chǎn)品部署在Linux上,如果某個功能發(fā)生錯誤,就需要我們?nèi)ヅ挪槌鲥e的原因,所以熟練的掌握查看log的方法顯得尤為重要。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了加格達(dá)奇免費建站歡迎大家使用!
??談到查看log的方法,最常使用的命令可以說是cat與more及l(fā)ess了,但是如果查看一個很大的文件,并且只想看到該文件最后幾行的結(jié)果輸出時,你還記得用什么嗎?對了,就是tail,此外tac也可以達(dá)到這個目的。接下來文章將通過實例來講解各個查看日志的命令。
想要直接查看一個文件的內(nèi)容,可以使用cat/tac/nl命令行。
??在一般情況下,使用[tab]與空格鍵的效果差不多,都是一堆空白,無法區(qū)分出兩者,但是如果使用cat -A 就能夠發(fā)現(xiàn)空白的地方到底是什么,其中[tab]是以^I表示,換行符則是以$表示。當(dāng)文件內(nèi)容的行數(shù)超過40行以上時,根本來不及在屏幕上看到結(jié)果。所以cat配合less或者more是不錯的選擇。
??nl可以將輸出的文件內(nèi)容自動地加上行號,其默認(rèn)的結(jié)果與cat -n不太一樣,nl可以將行號做比較多的顯示設(shè)計,包括位數(shù)與是否自動補齊0等的功能。
??想要一頁一頁的查看文件的內(nèi)容,可以使用more和less命令。
??對比less和more,less的用法更加的靈活,more的缺點是沒有辦法向前翻頁,只能往后翻,但是less既能往后翻也能往前翻頁。
??如果只想關(guān)注日志內(nèi)容的前一段或者最后一段的內(nèi)容,使用head/tail。
??幾種查看log的方式總結(jié)的也差不多了,想要熟練的使用還需要多練。
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)容,不指定文件時,作為輸入信息進(jìn)行處理。常用于查看日志文件后多少行日志信息。
使用tail -f可以查看動態(tài)日志文件,tail -f filename可以把filename里最尾部的內(nèi)容顯示在屏幕上,并且不斷刷新,使你看到最新的文件內(nèi)容。
tail -n行數(shù)可以顯示指定行數(shù)信息。
Linux查看日志的命令有很多,比如tail、cat、tac、head、echo等,今天給大家介紹幾種常用的方法:
1、tail-實時查看變化的日志
命令格式: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命令是一個基于vi編輯器文本過濾器,它以全屏幕的方式按頁顯示文本文件的內(nèi)容,支持vi中的關(guān)鍵字定位操作。
more的語法:more 文件名
last
-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 守護進(jìn)程啟動和停止相關(guān)的日志消息
/var/log/wtmp 該日志文件永久記錄每個用戶登錄、注銷及系統(tǒng)的啟動、停機的事件