Logs

如何通過旋轉日誌grep?

  • April 20, 2021

我想知道有多少唯一 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

引用自:https://unix.stackexchange.com/questions/643470