#!/bin/bash
#
# YAMAHA RT Series for Zabbix
#
# 1. install to zabbix server
# sudo cp yamaha-rt-status.sh /etc/zabbix/externalscripts/
# sudo chmod 755 /etc/zabbix/externalscripts/yamaha-rt-status.sh
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
readonly HOST=$1
readonly USER=$2
readonly PASSWORD=$3
readonly KEY=$4
readonly CMDNAME=`basename $0`

usage_exit() {
	cat 1>&2 << EOS
Usage: $CMDNAME [Host] [User] [Password] [Key]
  Host: target host

  User: telnet login user

  Password: telnet login password
  
  Key:
    nat-table-count: The number of nat table
EOS
	exit 1
}

# the number of nat table
get_nat_table_count(){
	host=$1
	user=$2
	password=$3
	timeout=${4:-5}
	expect -c "
set timeout $timeout
spawn telnet $host
expect \"Password:\" ; send \"\n\"
expect \"Username:\" ; send \"$user\n\"
expect \"Password:\" ; send \"$password\n\"
expect \">\" ; send \"console character ascii\n\"
expect \">\" ; send \"console lines infinity\n\"
expect \">\" ; send \"show nat descriptor address\n\"
expect \">\" ; send \"exit\n\"
expect eof" | grep used | awk 'BEGIN {sum=0} {sum+=$6} END {print sum}'
}

main(){
	local exit_status=0

	case $KEY in
	"nat-table-count" )
		get_nat_table_count "$HOST" "$USER" "$PASSWORD"
		exit_status=$?
		;;
	* )
		usage_exit
		;;
	esac

	exit $exit_status
}

# exec
if [ "$HOST" == "" -o "$KEY" == "" ]; then
	usage_exit
fi

main

# vim: ts=4:sw=4
