一、tail命令簡介
tail命令是Linux下的一種常用命令,用於查看文件的末尾內容。一般使用tail命令可以做到以下幾個方面:
1、查看文件的最後10行內容。
tail filename
2、查看文件前n行內容。
tail -n n filename
3、實時查看日誌文件新增內容,即只顯示新增部分。
tail -f filename
除了以上三種常用方式,tail命令還有其他參數,可以通過man命令查看。
二、tail -f 實現日誌文件的實時監控
對於運維工程師來說,日誌文件排查問題是一個常見的任務。在第一時間了解日誌文件的變化情況可以大大提高問題排查的效率。
使用tail -f命令可以實時查看日誌文件新增內容,即只顯示新增部分。下面是實時查看access.log的示例:
tail -f access.log
執行該命令後,終端不會自動返回,而是一直等待新增內容的產生。當有新的內容添加到access.log中時,終端會立即顯示出來。如果需要結束該命令,可以使用Ctrl+C。
三、使用tail -f 監控多個日誌文件
有時候我們需要同時實時監控多個日誌文件,可以使用tail命令的-f參數加上多個文件名。下面是實時查看多個日誌文件的示例:
tail -f access.log error.log debug.log
通過-t參數可以同時實現對多個文件的查看。
四、限制tail-f返回多少行的實時內容
有時候我們並不需要看到日誌文件的全部內容,而只是關心一段時間內的新增內容。tail命令提供了一個–retry參數,可以讓tail命令在文件被輪詢之前休息,這樣停頓時間內的日誌文件內容就不會返回。下面是僅返回最近100行內容的示例:
tail -f --retry -n 100 access.log
通過-n參數可以控制需要返回的內容行數。
五、使用sed命令實時監控日誌文件並過濾內容
tail命令只提供了基本的文件內容查看功能,如果我們需要對輸出內容進行過濾或格式化,可以配合使用sed命令。該命令的詳情可以使用man sed命令查看。
下面是一段實現過濾日誌內容並着色的示例代碼:
tail -f access.log | sed -n 's/.*\(HTTP\/[0-9].[0-9]\)\" \(.*\)/\o033[32m&\o033[0m/p' | sed -nE '/HTTP.*response [45]/ s@.*(\b([45]\d{2})\s.*)@\o033[1;31m\1\o033[0m@p'
通過該命令,我們可以將http響應碼為4xx和5xx的請求着色為紅色,方便在一堆日誌中快速定位問題。
六、結語
通過本文的介紹,我們可以了解到tail命令在日誌排查中的重要性,以及一些常用的tail命令用法。對於日誌文件的實時監控以及過濾處理可以大大提高運維效率,特別是在問題排查的時候。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/194865.html