2013年11月17日

FreeBSD上のbyoubuでの使用メモリの表示

byobuは、標準でロードアベレージやメモリ使用量などを表示することができますが、あくまでLinuxを対象に作成されているためFreeBSDではまったく情報を表示することができなくなります。そのため、自作のスクリプトを作成し表示を行うようにしました。

メモリ表示スクリプト

試しに、メモリの表示を行うスクリプト作成しました。FreeBSDはメモリの情報表示に関して、Linuxのように/procを読み込んで表示することはできません。sysctlを叩いて情報を取得します。

% more /usr/local/bin/mem
#!/bin/sh
a=`echo "4098*$(sysctl -n vm.stats.vm.v_free_count)/1024/1024" | bc`
b=`echo "$(sysctl -n sysctl hw.physmem)/1024/1024" | bc`
echo "${a}MB/${b}MB"

byobu設定ファイル

~/.byobu/profileの設定を変更します。
backtickが、どうやらバックグラウンドで表示を行うスクリプトと表示番号を定義している模様です。今回は、138と139という番号でスクリプトを作成しました。
hardstatus stringが、表示位置やレイアウトを設定している模様です。一番最後に138と139を追加しました。

backtick 138    5       5               mem
backtick 139    5       5               sysctl -n vm.loadavg

hardstatus string '%99`%{-}%{=r}%12` %100`%112`%=%117`%133`%130`%135`%102`%101`%129`%131`%127`%114`%115`%108`%134`%128`%125`%126`%113`%119`%116`%106`%104`%103`%105`%107`%136`%123`%137`%132`%120`%121` %138` %139`'

参考

/usr/local/lib/byobu/profile以下に各情報を取得するためのシェルスクリプトが格納されています。手っ取り早く表示させるならば、ここのスクリプトを書き換えてしまうのが、もっとも手軽です。