Bash
Sun Solaris 中的記憶體使用率百分比(百分比)?
我想以百分比格式獲取 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
另外,請建議此查詢是否有任何替代方法?
使用 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
首先在 shell 中分配變數,然後使用 shell 變數替換執行查詢。這需要在中使用雙引號awk
並確保轉義awk
變數。你也不需要fgrep
和awk
一起使用,awk
兩者都可以。在我可用的 Opensolaris 上測試過,所以 YMMV。