在生產(chǎn)環(huán)境中,往往沒有條件給我們?nèi)ebug排查,更多時候我們是通過日志來看具體的報錯日期。
創(chuàng)新互聯(lián)公司主營皋蘭網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應用開發(fā),皋蘭h5小程序定制開發(fā)搭建,皋蘭網(wǎng)站營銷推廣歡迎皋蘭等地區(qū)企業(yè)咨詢
但是日志往往是一直在實時更新,而且記錄條數(shù)龐大,很難直接定位到錯誤信息。這個時候,就可以利用sed命令來截取指定時間段內(nèi)的日志(也是網(wǎng)上大多數(shù)博主的做法)。
具體命令如下:
這條命令可以查詢2020.10.13號當天9點到9點十分中間的所有的日志信息。
但是這條命令的使用有兩個前提(很多網(wǎng)上的博主都沒有提到)
第一,日志輸出的日期格式是要滿足命令中的格式 ,如果不是的話就跟著實際的格式改
第二,輸入的日期必須要真實存在?。。?,比如說9點整剛好沒有日志輸出,那么這條命令就會失效
更加通配的命令可以是這樣, 使用 號*
這樣無論九點整的時候是否有日志產(chǎn)生,就都可以獲取到9點整到現(xiàn)在的所有日志了
使用 ,將截取到的內(nèi)容輸出到指定的文件中,方便進一步查看
ps:在實際操作中,我們一般會在后面加grep命令做進一步的關(guān)鍵字過濾
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)是不會做出你期望的響應的。
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中間沒有空格)
重復執(zhí)行上一個命令
[zzs@linux] #!!
執(zhí)行最后一次以rpm開頭的'命令(!? ?代表的是字符串,這個String可以隨便輸,Shell會從最后一條歷史命令向前搜索,最先匹配的一條命令將會得到執(zhí)行。)
[zzs@linux] #!rpm
逐屏列出所有的歷史記錄:
[zzs@linux]# history | more
立即清空history當前所有歷史命令的記錄
[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)的啟動、停機的事件