删除 netstat 输出(特别是 Not all processes could be identified 行)

Remove netstat output (specifically Not all processes could be identified line)

我在检查当前端口是否正在使用时无法删除 netstat 命令的输出。我不需要命令的输出,而只需要错误代码。

运行 netstat -anp | grep 1521 &>/dev/null 结果

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)

显示为输出。我也试过:

2>/dev/null| cut -d' ' -f45-50 | sed 's/[^0-9]*//g'

这只会在 Not all processes... 输出后产生一堆空行,但仍会在输出中显示。

最终解决了我自己的问题。 使用以下

netstat -taepn 2>/dev/null | grep -Po "\b(\d|\.)+:1521\b" 1>/dev/null

当我只想要错误代码而不需要输出时,这是特定于我的情况

接受的答案对我不起作用,这里是 CentOS6.5 32bit。无论端口状态如何,它都不输出。

我找到了我的解决方案:

netstat -antp 2>/dev/null | grep [port-num]

如果由普通用户执行,这将省略 netstat 的前两行。

警告两行需要省略:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)

适用于两种情况:

  1. 端口是 "LISTEN" 状态
  2. 端口处于 "TIME_WAIT" 状态。

而不是

netstat -anp

您可以使用

检查
sudo netstat -anp 

这对我有用。