読者です 読者をやめる 読者になる 読者になる

よんちゅBlog

― このブログは自分用のメモや日々の問題などを共有するためのものです ―

20121005185841 お知らせ:  2013/07/17 ブログデザインをリニューアルしました。

メモリ使用率を表示する (Mac/Linux+出力カスタマイズ+精度指定)

mac linux tmux シェルスクリプト bash

以前、以下の記事にてメモリ使用率を表示するスクリプトを紹介しましたが、あれからもう少し汎用的なスクリプトに改良したので紹介します。

前回はMacでしか動作せず、メモリ使用率(%)を表示するのみでしたが、今回からMacに加えてLinuxでも動作するようにしました。

また、出力も使用率(%)だけでなく、使用量(GB)、空き率(%)、空き量(GB)、総量(GB)なども表示できるようにしました。
さらに、出力形式のカスタマイズや精度(小数点第何位まで求めるか)なども指定できるようにしました。

sample02

インストール方法

下記Githubからcloneまたはダウンロードし、PATHの通った所に置きます。

$ git clone https://github.com/yonchu/used-mem.git
$ mv used-mem/used-mem ~/bin

gitが使用できない場合は
ここから直接ダウンロードして下さい。

使用方法

Usage:
  used-mem [出力フォーマット]

フォーマット用文字列:
  #f : 空きメモリ率(%).
  #u : 使用メモリ率(%).
  #F : 空きメモリ量(GB).
  #U : 使用メモリ量(GB).
  #T : 総メモリ(GB).

出力フォーマットが未指定の場合は、メモリ使用率(%)とメモリ使用量(GB)/総メモリ(GB)が表示されます。

$ used-mem
77.8%(6.2G/8.0G)

フォーマットを指定した場合、

$ used-mem '#f%(#FG/#TG)'
22%(2G/8G)

$ used-men '#.1u%'
77.8%

$ used-mem 'Free: #.2f % (#.3F GB) | Used: #.2u % (#.3U GB) | Total: #.3T GB'
Free: 38.32 % (3.065 GB) | Used: 61.68 % (4.933 GB) | Total: 7.998 GB

精度の指定は、#.Nu のように指定し、小数点以下N桁まで表示します。
C言語シェルスクリプトのprintf文と同じような指定方法です。

精度指定の最大値はデフォルトでは小数点以下3桁までです。
4桁以上指定したい場合は以下のように実行します。

$ MAX_SCALE=5 used-mem '#.5u%'
97.73180%

tmuxで使用

tmuxで使用するとこんな感じになります。

  • $ used-mem 'Ⓜ #.1u%'

sample01

  • $ used-mem 'Ⓜ #.1u%(#.1UG/#.1TG)'

sample02

  • $ used-mem 'Free: #.2f % (#.3F GB) | Used: #.2u % (#.3U GB)'

sample03

蛇足

精度指定の最大値がデフォルト3桁とやや小さめになっているのは、検証不足のためです (-_-;)
32bitの環境で、bcコマンドが使用できない場合に、どこまで最大精度を大きくできるか分からなかったんですよね。
(手元に32bitの環境がなくて… / 今時の環境はbcコマンドぐらい入ってると思うけど…)