使用tail命令檢視日誌,蒐集整理了一些常用的命令
1. tail命令格式
tail [ 引數 ] [ 選擇新增的引數 ] ... [ 檔案 ]
常用引數:
-f 迴圈讀取
-q 不顯示處理資訊
-v 顯示詳細的處理資訊
-c《數目》 顯示的位元組數
-n《行數》 顯示行數
--pid=pid 與-f合用,表示在程序id,pid死掉之後結束.
-q, --quiet, --silent 從不輸出給出檔名的首部
-s, --sleep-interval=s 與-f合用,表示在每次反覆的間隔休眠s秒
示例:
1. 檢視日誌檔案最後200行
tail -200 日誌檔案(列印出日誌檔案的最後200條資訊)
tail -f -n 200 日誌檔案 (實時列印最新的日誌資訊)
tail -200 n 日誌檔案(實時列印最新的日誌資訊)
tail -n +200 日誌檔案(從第200 行開始顯示日誌資訊)
2. 檢視日誌檔案的前200行
head -n 200 日誌檔案
3. 檢視日誌檔案的中間指定行
cat 日誌檔案 | head -n 200 | tail -n + 101
4. grep過濾檔案內容並列印
grep 443檔案 (檢視檔案中中含有8080欄位的行)
grep -n 443檔案(確定8080欄位在檔案中的行數)
grep -n -i "nginx" 檔案 (確定ggpush在檔案中的行數並且忽略大小寫)
5. 過濾掉指定的日誌資訊
grep -v '關鍵字'
tail -f 檔名 | grep 關鍵字 | grep 關鍵字
7. tail -f 多次grep過濾輸出可能會出現的問題
對日誌記錄做多次grep過濾輸出,格式如下:
tail -f log | grep *** | grep yyy
發現grep失效,無法做正確輸出。google研究了一下,原因如下:
管道 | 是全緩衝的,一般來說buffer_size為4096,有些是8192。不管具體值多少,只有buffer_size滿了,才會看到輸出。
在操作裡 >>file 這個操作也是全緩衝的。調整如下
tail -f log | grep --line-buffer *** | grep --line-buffer yyy
結果輸出正常。
grep當帶上了 --line-buffer 的時候,每輸出一行,就重新整理一次。
在unix裡,塊裝置和普通檔案,以及管道都是全緩衝的。
對日誌分析告警和實時監控可以考慮如下形式:
tail -f $logf | while read var
docase "$var" in
......
esac
done
Linux命令(八)過濾文字 grep
grep是乙個強大的文字搜尋工具命令,用於查詢檔案中符合指定格式的字串,支援正規表示式。如不指定任何檔名稱,或是檔名為 則gerp命令從標準輸入裝置中讀取資料。grep家族包括grepegrep和fgrep。egrep 和 fgrep 命令只跟 grep 有很小的不同。egrep 是 grep 的擴...
grep命令檔案過濾分割與合併
grep global search regular expression re and print out the line,全面搜尋正規表示式並把行列印出來 是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。a不要忽略二進位制資料。a 顯示列數 除了顯示符合範本樣式的那...
grep命令常用引數及用法
grep命令是linux系統中一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱global regular expr ession print,表示全域性正規表示式版本,它的使用許可權是所有使用者。grep可用於shell指令碼,因為grep通過返回乙個狀態值...