EMC VNXの情報をCacti用に取得するスクリプト

#!/bin/bash
#
# Created: 2014/12/03 Hiroshi Munakata
# Updated: 2014/12/08
#
# vnx_sysstat.sh [Target IP] [Server Name]
#

TMP=/tmp/vnx_expect_$$.log
TMP2=/tmp/vnx_expect_2_$$.log
TMP3=/tmp/vnx_expect_3_$$.log

expect -c "
set timeout 5
spawn ssh user@$1
expect \"password:\"
send \"pass\r\"
expect \"~\]\\\$\"
send \"server_sysstat $2\r\"
expect \"~\]\\\$\"
send \"server_df server_2 | grep servername | awk \'{print \\\"servername_used:\\\" \\\$3 \\\" servername_available:\\\" \\\$4 \\\" servername_percentage:\\\" \\\$5}\'\r\"
expect \"~\]\\\$\"
send \"exit\r\"
" > $TMP

#cat $TMP | awk '/threads/,/cpu/' | sed "s/=/:/" | sed "s/\s//g" | sed "s/_%//g" | sed "s/I\/J\/Z//g" | sed "s/(kB)//g" > $TMP2
cat $TMP | grep -A 3 'threads runnable' | sed "s/\s//g" > $TMP2
cat $TMP | grep -A 0 'cpu idle_%' | sed "s/\s//g" | awk -F'=' '{print "cpu=" 100-$2}' >> $TMP2
cat $TMP2 | sed "s/=/:/g" | sed "s/_%//g" | sed "s/I\/J\/Z//g" | sed "s/(kB)//g" > $TMP3
cat $TMP | grep '^servername' | sed "s/%//g" >> $TMP3
cat $TMP3 | sed ':loop N; $!b loop; ;s/\n/ /g'

rm $TMP
rm $TMP2
rm $TMP3

出力
[sysuser ~]$ /bin/sh /usr/local/share/cacti/scripts/vnx_sysstat.sh 192.168.0.1 server_2
threadsrunnable:14 threadsblocked:5162 threads:1 memoryfree:3237370 cpu:11 servername_used:7829472280 servername_available:1580392792 servername_percentage:83%