过滤来自 netcat SMTP 扫描的远程服务器响应

过滤来自 netcat SMTP 扫描的远程服务器响应

我正在使用 netcat 来测试远程交换服务器(我们称之为 Exchange1)是否与此代码联机。

nc -w 3 192.168.130.17 25

当且仅当 netcat 扫描收到以下响应时,我想创建一个具有该服务器名称的文件“220 SMTP 服务器就绪”,表示exchange1在线。如果没有响应,我不想将名称写入文件,因为它处于脱机状态。

  1. 这个叫什么。我相信它是一种命令结果过滤,但很难找到任何有关其如何完成的文章。
  2. 有人可以提供一个简单的例子,以便我可以从中学习。

答案1

您可以grep通过将其他命令的输出通过管道传输到 来检查某些命令的输出是否与模式匹配grep。您在块grep内使用if

一个明显愚蠢的例子(全世界都称其为“星期五”,对吧?):

if date +%A | grep -q 'Friday'; then   # -q tells grep not to echo the matched text
    throw_a_party
else
    echo "Nope, sorry, not time yet."
fi

Bash 手册的相关部分包括“管道”和“复合命令”。

相关内容