如何在 AIX 上获取端口是否正在侦听的特定输出?

问题描述

假设我正在查看端口 22。所以我使用

netstat -an | grep 22

我该怎么做才能使命令的输出只是显示“LISTEN”、“ESTABLISHED”等的列

我需要一个命令或短脚本,它将端口作为输入并具有如下所示的输出

预期输出

LISTEN

我尝试做类似的事情

netstat -an | grep .22 | awk '{print $7}' 

这个问题是,我似乎也得到了一些其他端口,如 2279 和 1022。我不知道如何为 netstat 输出修复这个问题,我不能使用基于长度的过滤,因为我可能还需要输入 3 位或 4 位端口。

我只想要特定端口的输出,在本例中为 22。

解决方法

使用您显示的示例,请尝试以下代码。只需将 netstat 命令的输出发送到 awk 代码作为输入,然后检查第 4 个字段是否以 :22 结尾(检查端口 22),然后打印其最后一列,即其状态。

netstat -an | awk '$4~/:22$/{print $NF}'