2012-05-14 5 views
24

Linuxのコマンドラインを使用して使用可能なメモリをパーセントで報告します。 freeコマンドを使用して空きメモリのパーセントに対するLinuxコマンド

+0

空きRAMの量を報告するスクリプトに満足できますか? – Levon

+0

いいえフリー・ラムのパーセンテージが必要です。 –

+0

申し訳ありませんが、パーセントを意味しましたが、スクリプトまたはパイプコマンドの結果として – Levon

答えて

75

:我々はMemとラインと我々の計算のための特定のフィールドを選択awkを使用してをつかむ、この出力に基づいて

% free 
      total  used  free  shared buffers  cached 
Mem:  2061712  490924 1570788   0  60984  220236 
-/+ buffers/cache:  209704 1852008 
Swap:  587768   0  587768 

これは使用

% free | grep Mem | awk '{print $3/$2 * 100.0}' 
23.8171 

にメモリの割合を報告します。これは、このコマンドのエイリアスを作成したり、小さなにこれを入れることができ

% free | grep Mem | awk '{print $4/$2 * 100.0}' 
76.5013 

無料ですメモリの割合を報告しますシェルスクリプト。特定の出力は、次の行に沿ってprintステートメントの書式設定コマンドを使用してニーズに合わせて調整できます。

free | grep Mem | awk '{ printf("free: %.4f %\n", $4/$2 * 100.0) }' 
+7

'フリー-t | grep "バッファ/キャッシュ" | @http/topのMemと一致する数字を報告するので、awk '{print $ 4 /($ 3 + $ 4)* 100}'もかなりうまくいく。 –

+5

@ KevinJalbert's:素晴らしいことに、ありがとう。しかし、 'grep'を省略して' awk'にまっすぐ行くことができます: 'free | awk '/ buffers \/cache/{print $ 4 /($ 3 + $ 4)* 100.0;}' ' – Wrikken

+0

@Wrikken:素晴らしい作品もあります。ありがとうございます。しかし、他の数字もパーセンテージとして落とすことでそれを高めることができます。 $ 3/$ 2 * 100} /バッファー\ /キャッシュ/ {printf( "、バッファー:%.2f%")、$ 4 /($ 3 + $ 4) )* 100}/Swap/{printf( "、swap:%.2f%")、$ 3/$ 2 * 100} '' –

関連する問題