###作業場所への移動
Terminal
cd /usr/local/bin
###起動時間を取得するスクリプトの作成
pc-running-time
#!/bin/sh
uptime | sed -e 's/.* up *\(.*\)/\1/' -e 's/\(.*\),.* user.*/\1/' | awk -F, '{print $1 $2}' | tr -s ' '
###ロードアベレージを取得するスクリプトの作成
loadaverage
#!/bin/sh
uptime | awk -F\ '{print $(NF - 2),$(NF - 1),$NF}'
###メモリ使用率を取得するスクリプトの作成
used-mem
#!/bin/sh
## debug mode
#DEBUG="yes"
if [ "$DEBUG" = "yes" ]; then
set -x
fi
## vm_stat コマンドのチェック
if ! type vm_stat > /dev/null 2>&1; then
exit 1
fi
#
# メモリ使用率(%)を求める
# 精度は小数点第1位までとする
#
calculate_used_mem() {
# vm_stat
# page size of 4096 bytes
VM_STAT=$(vm_stat)
PAGES_FREE=$(echo "$VM_STAT" | awk '/Pages free/ {print $3}' | tr -d '.')
PAGES_ACTIVE=$(echo "$VM_STAT" | awk '/Pages active/ {print $3}' | tr -d '.')
PAGES_INACTIVE=$(echo "$VM_STAT" | awk '/Pages inactive/ {print $3}' | tr -d '.')
PAGES_SPECULATIVE=$(echo "$VM_STAT" | awk '/Pages speculative/ {print $3}' | tr -d '.')
PAGES_WIRED=$(echo "$VM_STAT" | awk '/Pages wired down/ {print $4}' | tr -d '.')
# 空きメモリ
FREE_MEM=$(($PAGES_FREE + $PAGES_SPECULATIVE))
# 使用中メモリ
USED_MEM=$(($PAGES_ACTIVE + $PAGES_INACTIVE + $PAGES_WIRED))
# 合計
TOTAL_MEM=$(($FREE_MEM + $USED_MEM))
# 使用中メモリ(%)
# 小数点第1位まで求めて後から小数点文字(ドット)を挿入
USED_MEM_PERCENT=$(echo "$(($USED_MEM * 1000 / $TOTAL_MEM))" | sed -e 's/\(.*\)\([0-9]\)/\1.\2/' -e 's/^\./0./')
echo "${USED_MEM_PERCENT}"
# RET
return 0
}
# Debug
debug() {
if [ "$DEBUG" = "yes" ]; then
echo "PAGES_FREE: $PAGES_FREE pages"
echo "PAGES_FREE: $(($PAGES_FREE * 4096 / 1024 / 1024 )) MB"
echo "PAGES_ACTIVE: $PAGES_ACTIVE pages"
echo "PAGES_ACTIVE: $(($PAGES_ACTIVE * 4096 / 1024 / 1024)) MB"
echo "PAGES_INACTIVE: $PAGES_INACTIVE pages"
echo "PAGES_INACTIVE: $(($PAGES_INACTIVE * 4096 / 1024 / 1024)) MB"
echo "PAGES_SPECULATIVE: $PAGES_SPECULATIVE pages"
echo "PAGES_SPECULATIVE: $(($PAGES_SPECULATIVE * 4096 / 1024 / 1024 )) MB"
echo "PAGES_WIRED: $PAGES_WIRED pages"
echo "PAGES_WIRED: $(($PAGES_WIRED * 4096 / 1024 / 1024)) MB"
echo "FREE_MEM: $FREE_MEM pages"
echo "FREE_MEM: $(($FREE_MEM * 4096 / 1024 / 1024)) MB"
echo "USED_MEM: $USED_MEM pages"
echo "USED_MEM: $(($USED_MEM * 4096 / 1024 / 1024)) MB"
echo "TOTAL_MEM: $TOTAL_MEM pages"
echo "TOTAL_MEM: $(($TOTAL_MEM * 4096 / 1024 / 1024)) MB"
echo "---------------"
# 搭載メモリ(理論値): 8GBの場合
echo "TOTAL_MEM: $((8 * 1024)) MB (Theoretical value)"
echo "---------------"
echo "USED_MEM: $(($USED_MEM * 1000 / $TOTAL_MEM)) %"
fi
}
RET=0
## メイン処理 -----
calculate_used_mem
RET=$?
## デバッグ -----
#DEBUG=yes debug
## exit
exit $RET
###作成したスクリプトに実行権限を渡す
Terminal
chmod u+x used-mem pc-running-time loadaverage
###設定ファイルの編集
~/.tmux.conf
# ステータスライン - Right
set -g status-right '#[bg=yellow,bold] #(echo $LANG) #[bg=blue] up #(pc-running-time) #[bg=green] (#(loadaverage)) Mem #(used-mem)%% #[bg=red,bold] %y/%m/%d(%a)%H:%M:%S '
# Rightの表示領域最大長
set -g status-right-length 90
# 文字色と背景色
set -g status-fg white
set -g status-bg black