Log-Files

如何使用 grep 查找日誌文件中最常出現的錯誤?

  • May 1, 2019

我有一個 PHP 應用程序,它在日誌文件中生成大量警告和通知。

我正在一次修復這些。

我希望能夠首先修復最頻繁發生的問題,以最大限度地提高我的更改對日誌文件大小的影響。

如何使用 grep/sed/regex 等找出最常見的通知?

由於時間戳在開頭,我無法比較整行,但也許是“線上… ”的列表/分組/排序?

替代文字

這個怎麼樣?

grep 'on line' /var/log/httpd/error_log | cut -d' ' -f6- | sort | uniq -c | sort -nr

是的

  1. 從日誌文件中獲取正確的行
  2. 把前面的日期剪掉
  3. 對它們進行排序
  4. 匯總併計算重複項
  5. 按重複次數排序

我認為這更簡潔,因此您確實可以避免“剪切”。

 grep -o 'on line [[:digit:]]*' /var/log/nginx/error.log | sort | uniq -c | sort -nr

引用自:https://serverfault.com/questions/52124