RaspberryPi opi-clstの計算ノードのステータス一覧取得スクリプト

 2016-11-13
クラスタはノードが沢山あって一つ一つは見てらんないのでcactiでログを収集していますが、それとは別に、ターミナルからササッと確認できる様なスクリプトもあれば、役に立つ場面が時々あります。
 
基本的には、sshで各ノードのuptimeと、CPU温度を取得するだけのものです。
ただし、全ノードがオンラインとは限らないのでtimeoutコマンドを使って3秒以内に返答が無ければオフラインと判断する様にしました。
時間短縮のためそれぞれのsshコマンドはバックグラウンドで実行してます。そのため一時ファイルを介して結果を受け渡しさせています。タコい実装だなぁとは思いますが、まぁ動いてるからいいのだ。

#!/bin/zsh -f

NODE_LIST_ALL=(
clst01
clst02
clst03
clst04
clst05
clst06
clst07
clst08
clst09
clst10
clst11
clst12
clst13
clst14
# clst15
# clst16
# clst17
# clst18
# clst19
# clst20
# clst21
# clst22
# clst23
# clst24
# clst25
# clst26
# clst27
# clst28
)

CMDNAME=`basename $0`
TMPFILE_PREFIX="/tmp/${CMDNAME}_$$"
TIMEOUT=3

function getstat() {
TIMEOUT=$1
HOST=$2
LOGFILE=$3
timeout ${TIMEOUT} ssh ${HOST} '~/script/get_cputemp.sh;uptime' 2>&/dev/null | tr "\012" "," | sed 's/,$/\n/g' > ${LOGFILE}
grep -q "load average" ${LOGFILE} >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "offline" > ${LOGFILE}
fi
}

# request
echo -n "requesting...\r"
for IP in ${NODE_LIST_ALL}
do
getstat ${TIMEOUT} ${IP} ${TMPFILE_PREFIX}_${IP} &
sleep 0.1
done
echo -n " \r"



# wait
WAITSEC=`expr ${TIMEOUT} + 1`
echo -n "wait ${WAITSEC}sec"
for HOGE in `seq ${WAITSEC}`
do
sleep 1
echo -n "."
done
echo -n "\r"



# print result
for IP in ${NODE_LIST_ALL}
do
echo "${IP}: "`cat ${TMPFILE_PREFIX}_${IP}`
done


\rm -f ${TMPFILE_PREFIX}*




実行結果はこんな感じに出ます↓
[pi@opimaster]% ./clst_status.sh
clst01: 16.00, 20:45:40 up 9:59, 0 users, load average: 0.00, 0.02, 0.05
clst02: 24.00, 20:45:40 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst03: 18.00, 20:45:41 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst04: 15.00, 20:45:41 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst05: 19.00, 20:45:41 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst06: 17.00, 20:45:41 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst07: 20.00, 20:45:41 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst08: 16.00, 20:45:41 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst09: 25.00, 20:45:41 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst10: 20.00, 20:45:41 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst11: 12.00, 20:45:41 up 9:59, 0 users, load average: 0.00, 0.03, 0.05
clst12: 18.00, 20:45:42 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst13: 18.00, 20:45:42 up 9:59, 0 users, load average: 0.00, 0.01, 0.05
clst14: 18.00, 20:45:42 up 9:59, 0 users, load average: 0.00, 0.01, 0.05

 
 
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:
http://wbbwbb.blog83.fc2.com/tb.php/260-bc103887
≪ トップページへこのページの先頭へ  ≫