如何 grep /var/log/messages 中的所有唯一 IP 地址并将它们发送到另一个日志文件

如何 grep /var/log/messages 中的所有唯一 IP 地址并将它们发送到另一个日志文件

我正在停用旧的 Redhat 公共 BIND 服务器,并希望找到向该名称服务器发送 DNS 请求的所有唯一 IP 地址。到目前为止,这就是我能够拼凑的内容,但该命令不仅仅包含发送请求的客户端的 IP。

egrep -o [0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\} /var/log/messages | sort | uniq -c > dns-ip-client.log

我将如何去做这项工作?

谢谢。

答案1

我认为你的引用/转义让你绊倒了。单引号往往会让事情变得更容易:

grep 'named' /var/log/messages | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'

请注意grep -E==egrep但“不建议直接调用 egrep 或 fgrep”

相关内容