我需要解析Apache日誌文件以查找特定的可疑模式(如SQL注入)。Apache grep大日誌文件
比如我要找id='%20or%201=1;
我使用grep來檢查此模式(及其他)日誌文件,因爲這些日誌是巨大的花費相當長的時間量
這裏我的命令:
grep 'id=' Apache.log | egrep "' or|'%20"
是否有更好或更快的方法或命令我需要使用來使搜索更快?
我需要解析Apache日誌文件以查找特定的可疑模式(如SQL注入)。Apache grep大日誌文件
比如我要找id='%20or%201=1;
我使用grep來檢查此模式(及其他)日誌文件,因爲這些日誌是巨大的花費相當長的時間量
這裏我的命令:
grep 'id=' Apache.log | egrep "' or|'%20"
是否有更好或更快的方法或命令我需要使用來使搜索更快?
對於初學者,您不需要將您的grep
輸出輸出到egrep
。 egrep
提供grep
的正則表達式解析的超集,所以你可以這樣做:
egrep "id='(or|%20)'" apache.log
調用egrep
是相同的調用grep -E
。
這可能會讓你的表現有所提升。如果您可以查找固定字符串而不是正則表達式,那也可能有所幫助。你可以告訴grep來尋找一個固定的字符串與-F
選項:
grep -F "id='%20or" apache.log
但使用固定的字符串,你失去了很多的靈活性。
我假設大部分時間都是在從磁盤獲取數據時使用的(CPU使用率沒有最大化)。那麼你不能優化查詢。你可以嘗試只記錄在一個單獨的文件有趣的行,雖然....
你在尋找grep -E "id=(' or|'%20)" apache.log
?
讓我試試這個 – aki
謝謝它比我的代碼少了21分鐘 – aki