20

红帽企业 Linux 服务器版本 5.4 (Tikanga) 2.6.18-164.el5

我正在尝试将 watch 命令与 netstat 结合使用来查看使用某些端口的 2 个程序。

但是,我在下面使用的命令对这两个词都不起作用:

watch -n1 "netstat -upnlt | grep gateway\|MultiMedia"

这是对两个程序名称进行 grep 的正确方法吗?

如果我使用一个就可以了,但两者一起不起作用。

4

3 回答 3

44

对于您需要的 grep:

"grep gateway\|MultiMedia"

所以也许尝试:

watch -n1 'netstat -upnlt | grep "gateway\|MultiMedia"'
于 2012-09-27T04:07:39.857 回答
1

还有一种新的做事方式...... grep -E 很好且可移植(或 egrep,这对于 grep -E 在 linux&bsd 上非常快捷),因此您不必逃避引用。从手册页:

-E Interpret pattern as an extended regular expression (i.e. force grep to behave as egrep).

所以...

watch "netstat -upnlt | grep -E 'gateway|multimedia'"

或者

watch "netstat -upnlt | egrep 'gateway|multimedia'"

于 2015-07-05T08:10:19.983 回答
1

我在监控 ssh 连接时遇到了类似的问题。

> netstat -tulpan|grep ssh
tcp        0      0 192.168.2.52:58072     192.168.2.1:22          ESTABLISHED 31447/ssh 

但是watch -n 1 'netstat -tulpan|grep ssh'没有显示输出(除了来自手表的消息)。如果我将其更改为watch -n 1 'netstat -tulpan|grep ":22"'我得到所需的输出行。当 netstat 通过 watch 运行时,似乎忽略了 -p 选项。奇怪的。

于 2020-08-21T17:03:00.653 回答