2017-11-20 15 views
1

接続の量を '状態'でグルーピングしている間に、それらの接続数をカウントしようとしています。Unix - watchコマンドでパイプを使用する(状態によってグルーピングされた接続数をカウントする)

このコマンドは、その目標を達成:

そのような出力を提供
netstat -ant | awk '{ print $6}' | sort | uniq -c 

:私はそのようなwatchコマンドを使用して、私のコマンドを組み合わせしようとしています

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

を:

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

しかし、出力はちょうどnetstat -antですコマンド(パイプの最後の出力ではありません)。

watchでこの複合コマンドを使用するにはどうすればよいですか?

答えて

1

これは動作します:あなたは、単一引用符が含まれているために起こる、二重引用符で囲まれた文字列を渡している

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

。二重引用符で囲んだ文字列の中で、$は、リテラル$をエスケープする必要があります($6 =>\$6)。あなたはwatchの可能性が高いパイプラインのawk '{ print }'は、基本的に何もしません(あなたが取得している出力を説明することになる、($6未設定である可能性が高いと)

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

を受け取ることになります、それをエスケープしないでください 、例えばcat)。