Sun Solarisシステムのメモリ使用率を%パーセント形式で取得したいと思います。
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
また、このクエリに代わるものがあるかどうかを提案してください。
答え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です。
答え2
echo ::memstat | mdb -k
カーネル、zfs、ユーザー、および空きメモリーの使用率が生成されます。
ルートになる必要があります。