将grep与watch和netstat命令结合使用

时间:2012-09-27 04:00:30

标签: grep

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

您好,

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

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

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

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

如果我使用它可以,但两者都不起作用。

非常感谢,

3 个答案:

答案 0 :(得分:34)

对于你需要的grep:

"grep gateway\|MultiMedia"

所以也许试试:

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

答案 1 :(得分: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消息之外)。 如果将其更改为watch -n 1 'netstat -tulpan|grep ":22"',则会得到所需的输出行。通过netstat运行netstat时,似乎忽略了-p选项。奇怪。

答案 2 :(得分:0)

还有新的做事方式...... grep -E既漂亮又便携(或者egrep,这对于linux和< bsd上的grep -E来说简单快捷)所以你没有逃避报价。从手册页:

-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'"