0

geektool を使用して、Mac の入出力の平均キロバイト数を表示しようとしています

これにはsar awkとgrepを使用することを考えていますが、sarはバイト単位で出力し、Kbytesが必要です

sar -n DEV 1 1 | grep -i 'average.*en0' (明らかにより多くのデータを使用しますが、1 1 の方が高速です)

サンプル出力

Average:   en0            1            68           2           132

sar -n DEV 1 1 | grep -i '平均.*en0' | awk '{print $4, $6}'

サンプル出力

68 132

awk を使用して、この byte/ps 出力を Kbytes/ps に変換するにはどうすればよいですか?

答え:

sar -n DEV 1 1 | grep -i 'average.*en0'| awk '{printf "i: %.2f Kbps\no: %.2f Kbps\n", $4 / 1024, $6 / 1024 }'

これにより、netstat を使用して 11 行のコードに置き換えられます。これは、精度が低く、コードが多くなったと思います。

4

2 に答える 2

1
awk '{printf "%.2f %.2f\n", $4 / 1024, $6 / 1024 }'

キロバイトを小数点以下 2 桁で出力します。

$ line="Average:   en0            1            68           2           132"
$ echo "$line" | awk '{printf "%.2f %.2f\n", $4 / 1024, $6 / 1024 }'
0.07 0.13
于 2014-02-04T21:38:12.000 に答える
0

私の sar (sysstat 10.0.5) では、$4istxpck/s$6istxkB/sです。したがって、1000 respで割ると。1024 は次のようKtxpck/sになりtxMiB/sます。

sar -n DEV 1 1 | awk '/Average.*en0/ {print $4/1000, $6/1024}'

于 2014-02-04T21:43:58.910 に答える