登錄
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的巴彥淖爾網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
kbkiss
Linux查看日志常用命令
1.查看日志常用命令
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)鍵字的日志
2. 應(yīng)用場景一:按行號查看---過濾出關(guān)鍵字附近的日志
1)cat -n test.log |grep "debug"? 得到關(guān)鍵日志的行號
2)cat -n test.log |tail -n +92|head -n 20 ?選擇關(guān)鍵字所在的中間一行. 然后查看這個關(guān)鍵字前10行和后10行的日志:
? ? ? tail -n +92表示查詢92行之后的日志
? ? ? head -n 20 則表示在前面的查詢結(jié)果里再查前20條記錄
3. 應(yīng)用場景二:根據(jù)日期查詢?nèi)罩?/p>
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'? test.log
特別說明:上面的兩個日期必須是日志中打印出來的日志,否則無效;
? ? ? ? ? ? ? ? 先 grep '2014-12-17 16:17:20' test.log 來確定日志中是否有該 時間點
4.應(yīng)用場景三:日志內(nèi)容特別多,打印在屏幕上不方便查看
(1)使用more和less命令,
? ? ?如: cat -n test.log |grep "debug" |more???? 這樣就分頁打印了,通過點擊空格鍵翻頁
(2)使用 xxx.txt 將其保存到文件中,到時可以拉下這個文件分析
? ? ? 如:cat -n test.log |grep "debug"? debug.txt
tail -f 日志文件路徑主要用于查看實時的日志記錄,屬于動態(tài)記錄查看。
cat日志路徑主要用于查看靜態(tài)的歷史日志記錄,一般跟路徑名稱,常見的這周類型的日志記錄一般用管道符進行過濾篩選自己所需的記錄。
dmesg主要用于調(diào)試腳本或者命令,出現(xiàn)異常中斷來排查錯誤原因顯示的。
tail? -n? 10? test.log,查詢?nèi)罩疚膊孔詈?0行的日志。
tail -n +10 test.log,查詢10行之后的所有日志。
head -n 10? test.log,查詢?nèi)罩疚募械念^10行日志。
head -n -10? test.log,查詢?nèi)罩疚募俗詈?0行的其他所有日志。
操作命令
首先介紹一個名詞“控制臺(console)”,它就是我們通常見到的使用字符操作界面的人機接口,例如dos。我們說控制臺命令,就是指通過字符界面輸入的可以操作系統(tǒng)的命令。
例如dos命令就是控制臺命令。要了解的是基于Linux操作系統(tǒng)的基本控制臺命令。有一點一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)對大小寫是敏感的,也就是說,如果你輸入的命令大小寫不對的話,系統(tǒng)是不會做出你期望的響應(yīng)的。
??作為一名測試工程師,測試任務(wù)中和Linux打交道的地方有很多,比如查看日志、定位bug、修改文件、部署環(huán)境等。產(chǎn)品部署在Linux上,如果某個功能發(fā)生錯誤,就需要我們?nèi)ヅ挪槌鲥e的原因,所以熟練的掌握查看log的方法顯得尤為重要。
??談到查看log的方法,最常使用的命令可以說是cat與more及l(fā)ess了,但是如果查看一個很大的文件,并且只想看到該文件最后幾行的結(jié)果輸出時,你還記得用什么嗎?對了,就是tail,此外tac也可以達到這個目的。接下來文章將通過實例來講解各個查看日志的命令。
想要直接查看一個文件的內(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)容自動地加上行號,其默認的結(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é)的也差不多了,想要熟練的使用還需要多練。
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 守護進程啟動和停止相關(guān)的日志消息
/var/log/wtmp 該日志文件永久記錄每個用戶登錄、注銷及系統(tǒng)的啟動、停機的事件
linux 日志查看
tail、head、 cat、tac、sed、less、echo
1、命令格式: tail [必要參數(shù)] [選擇參數(shù)] [文件]
-f 循環(huán)讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c數(shù)目 顯示的字節(jié)數(shù)
-n行數(shù) 顯示行數(shù)
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反復(fù)的間隔休眠S秒
tail -n 100 catalina.out 查詢?nèi)罩疚膊孔詈?00行的日志;
tail -n +100 catalina.out 查詢100行之后的所有日志;
tail -fn 100 catalina.out 循環(huán)實時查看最后100行記錄(最常用的)
配合著grep用, 例如 : tail -fn 100 catalina.out | grep -- '關(guān)鍵字'
如果一次性查詢的數(shù)據(jù)量太大,可以進行翻頁查看,
例如:tail -n 6000 catalina.out |more -100 可以進行多屏顯示(ctrl + f 或者 空格鍵可以快捷鍵)
--------------------------------------------------------------------------------------------------------------------------
2、head
head -n 1000 catalina.out //查詢?nèi)罩疚募械念^10行日志;head -n -1000 catalina.out //查詢?nèi)罩疚募俗詈?0行的其他所有日志;
head其他參數(shù)與tail 類似
-----------------------------------------------------------------------------------------------------
3、cat
cat 是由第一行到最后一行連續(xù)顯示在屏幕上
$ cat filename // 一次顯示整個文件
$ cat filename //從鍵盤創(chuàng)建一個文件
$cat file1 file2 file //將幾個文件合并為一個文件,只能創(chuàng)建新文件,不能編輯已有文件.
$cat -n textfile1 textfile2 //將一個日志文件的內(nèi)容追加到另外一個 :
$cat : textfile2 // 清空一個日志文件
注意: 意思是創(chuàng)建, 是追加。
cat其他參數(shù)與tail 類似
----------------------------------------------------------------------------------------------------------------------------------------
4.tac
tac 則是由最后一行到第一行反向在螢?zāi)簧巷@示出來
--------------------------------------------------------------------------------------------------------------------------------------
5.sed
這個命令可以查找日志文件特定的一段 , 也可以根據(jù)時間的一個范圍查詢
//按照行號
sed -n '2,100p'catalina.out
//這樣你就可以只查看文件的第5行到第10行。
//按照時間段
sed -n '/2019-01-17 10:07:10/,/2019-02-14 16:54:01/p'catalina.out
-------------------------------------------------------------------------------------------------
6.less
less log.log
shift + G 命令到文件尾部 然后輸入 ?加上你要搜索的關(guān)鍵字例如 ?1213shift+n 關(guān)鍵字之間進行切換
----------------------------------------------------------------------------------------------
附錄1history // 所有的歷史記錄history | grep XXX // 歷史記錄中包含某些指令的記錄history | more // 分頁查看記錄history -c // 清空所有的歷史記錄!! 重復(fù)執(zhí)行上一個命令
查詢出來記錄后選中 : !323
-------------------------------------------------------------------------------------------------------------
7、echo
輸出 echo "12345"
---------------------------------------------------------------------------------------------------------
附錄2
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)的啟動、停機的事件
---------------------------------------------------------------------------------------------------------------------
附錄3
tomcat運行日志
1、先切換到:cd usr/local/tomcat3/logs
2、tail -f catalina.out
3、這樣運行時就可以實時查看運行日志了
Ctrl+c 是退出tail命令。 alt+E+R重置