command の出力からいくつかのフィールドを抽出したいxentop
。top
コマンドのようなものです。CPU 使用率、メモリ使用率などをリアルタイムで継続的に表示します。このコマンドをバッチ モードで実行すると、次のような出力がファイルに表示されます。
NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS VBD_OO VBD_RD VBD_WR VBD_RSECT VBD_WSECT SSID
Domain-0 -----r 13700 33.0 7127040 85.9 no limit n/a 8 0 0 0 0 0 0 0 0 0 0
fed18 -----r 738 190.6 1052640 12.7 1052672 12.7 3 1 259919 8265 1 0 82432 22750 2740966 1071672 0
そしてこれを実行する
cat file| tr '\r' '\n' | sed 's/[0-9][;][0-9][0-9][a-Z]/ /g' | col -bx | awk '{print $1,$4,$6}'
このファイルで私が欲しいものを私に与えます
NAME CPU(%) MEM(%)
Domain-0 33.0 85.9
fed18 190.6 12.7
しかし、私のスクリプトは xentop のリアルタイム出力では機能しません。反復オプションを 1( ) に設定して xentop を 1 回だけ実行しようとしましたxentop -i 1
が、機能しません。xentop の出力を "not" リアルタイムとしてスクリプトにパイプするにはどうすればよいですか?