SunSolarisシステムのメモリ使用率をパーセント形式で取得したいと思います。
vmstat 1 1 | tail -1 | awk 'a=`/usr/sbin/prtconf|fgrep Memory|awk '{print $3*1024}'{ print 100-($5/$a)*100}'
エラーを下回る:
awk: syntax error near line 1
awk: bailing out near line 1
また、このクエリに可能な代替手段があるかどうかを提案してください。
Solaris awk
(-v
スイッチがないか、変数の設定が許可されていない)を使用し、最初に元のクエリを使用すると、次のことができます。
空きメモリの割合:
a=$(/usr/sbin/prtconf | /usr/bin/awk '/Memory/ {print $3*1024}'); vmstat 1 1 | tail -1 | awk "{print (\$5/$a)*100}"
使用済みメモリの割合:
a=$(/usr/sbin/prtconf | /usr/bin/awk '/Memory/ {print $3*1024}'); vmstat 1 1 | tail -1 | awk "{print 100-(\$5/$a)*100}"
最初にシェルで変数を割り当ててから、シェル変数置換を使用してvmstat
クエリを実行します。これには、awk
で二重引用符を使用し、awk
変数を必ずエスケープする必要があります。また、fgrep
とawk
を一緒に使用する必要はありません。awk
は両方を使用できます。
利用可能なOpensolarisでテストしたので、YMMV。
echo ::memstat | mdb -k
カーネル、zfs、ユーザー、および無料によるメモリの使用率を生成します。
あなたはルートである必要があります。