【问题标题】:Unix - Using pipe inside watch command (Count connections groupped by state)Unix - 在 watch 命令中使用管道(按状态分组计数连接)
【发布时间】:2017-11-20 16:35:31
【问题描述】:

我正在尝试计算连接数量,同时按它们的“状态”对它们进行分组。

这个命令实现了这个目标:

netstat -ant | awk '{ print $6}' | sort | uniq -c

它提供了一个看起来像这样的输出:

  4 CLOSE_WAIT
  1 established)
127 ESTABLISHED
  1 Foreign
  2 LAST_ACK
 39 LISTEN
  9 TIME_WAIT

我正在尝试将我的命令与 watch 这样的命令结合起来:

watch -n 1 "netstat -ant | awk '{ print $6}' | sort | uniq -c"

但是,输出只是 netstat -ant 命令的输出(而不是管道的最后输出)。

如何将这个复杂的命令与watch 一起使用?

【问题讨论】:

    标签: unix pipe netstat


    【解决方案1】:

    这行得通:

    watch -n1 "netstat -ant | awk '{ print \$6}' | sort | uniq -c"
    

    您正在传递一个恰好包含单引号的双引号字符串。在双引号字符串中,$s 意味着文字 $s 必须被转义($6 => \$6)。 如果你不逃避它,watch 可能会收到

    "netstat -ant | awk '{ print }' | sort | uniq -c"
    

    (因为$6 可能未设置),这将解释您得到的输出(管道中的awk '{ print }' 本质上是一个无操作,如cat)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 2011-12-26
      • 2022-01-20
      • 2022-06-21
      • 1970-01-01
      相关资源
      最近更新 更多