Linux

如何從 Linux SSH 安全日誌 中過濾 PID?

  • August 13, 2020
 Aug 12 01:30:26 server.example.com sshd[19486]: Failed password for root from X.X.X.X port 50528 ssh2
 Aug 12 01:30:26 server.example.com sshd[19486]: Received disconnect from X.X.X.X port 50528:11: Bye Bye [preauth]
 Aug 12 01:30:26 server.example.com sshd[19486]: Disconnected from X.X.X.X port 50528 [preauth]
 Aug 12 01:30:28 server.example.com sshd[19491]: Failed password for root from X.X.X.X port 59628 ssh2

我有一個從“/var/log/secure”中提取的範例 Linux SSH 日誌文件。我想過濾 PID(本例中為 19491 和 19486)。如何使用 bash 實現這一點?

使用 awk:

awk -F '[][]' '{print $2}'  /var/log/secure
  • -F '[][]'將文件分隔符作為左大括號和右大括號
  • $2 驗證第二個欄位。

這有點笨拙,但我希望有人可以發布一個較短的版本:我使用 sed 命令替換了“

$$ " and " $$" 帶有空格的字元,然後使用 awk 命令列印第 6 個欄位

# cat /var/log/secure | sed 's/\[/ /g' | sed 's/\]/ /g' | awk ' {print $6}'
19486
19486
19486
19491

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