Logs
如何通過旋轉日誌grep?
我想知道有多少唯一 IP 連接到我的網站。在日誌開始輪換之前,以下內容一直有效:
cut -d' ' -f1 /var/log/apache2/access.log | uniq -d | wc -l
遍歷所有日誌是慣用的解決方案嗎?
是的,
grep
可以帶多個文件,但cut
. 由於您已經以這種方式完成了它並且它可以工作,那麼除了在其中放置一個可以擷取您需要的所有日誌文件的 glob 之外,您無需進行任何更改。就像是…cut -d' ' -f1 /var/log/apache2/access*.log | uniq -d | wc -l
zgrep是讀取旋轉日誌的工具。它預設安裝在 Ubuntu、Mint 和 Arch 上。
#!/usr/bin/env bash # Count unique IPs. zgrep -E [0-9]*\.[0-9]*\.[0-9]*\.[0-9] /var/log/apache2/access.log* | cut -d':' -f2 | cut -d' ' -f1 | uniq -d | wc -l