Top / Server / Tools / chkalive

、マ、ク、皃ヒ

テシヒ、ホタクサ爍ハ。ゥ。ヒセカキ、トエナェ、ヒ・癸シ・、ヌ・・ン。シ・ネ、ケ、・ト。シ・、ヌ、ケ。」
ping、チソョ、キ、ニ。「ネソア、ャヘュ、、ミalive。「フオ、ア、、ミdead、ネ、キ、ニ、、、゙、ケ。」

・ス。シ・ケ・ウ。シ・ノ

#!/usr/local/bin/bash

#----------------------------------------------------
#  Computer Alive Checker (for MultiClients)
#  Version 0.20
#  by myasu 2002
#----------------------------------------------------

#テーユ
#  ノャ、コGNU、ホ・ウ・゙・・ノ、サネ、テ、ニ、ッ、タ、オ、、。」
#  ping、ホハヨナキイフ、ャ "... is alive" "... is dead"、ホ、゚、ヒツミア。」
#  (_SEND_PINGエリソ、ホス、ュエケ、ィ、ャノャヘラ)

#----------------------
#ス魘タ゚ト

#ニスナチソョヒノサ゚ヘム・ユ・鬣ー、ホス、ュケ、゚タ隘ヌ・」・・ッ・ネ・
DIR_FLUG="./"

#・チ・ァ・テ・ッツミセン、ネ、ハ、・ウ・・ヤ・蝪シ・ソ、ホ」ノ」ミ・「・ノ・・ケ(コヌク螟ヒノャ、コ"null"、ニ、、、ウ、ネ。ェ)
LIST_IP=( \
	10.96.101.1 \
	10.96.101.2 \
	10.96.101.3 \
	null
)

#・癸シ・、ホチソョタ
LIST_MAIL="hoge@hogegoge"

#ハヨソョタ
RET_MAIL="hoge@hogegoge"


#サネヘム、ケ、・ウ・゙・・ノ、ホタ゚ト
C_NSLOOKUP="/usr/local/bin/dnsname"
C_PING="/usr/sbin/ping"
C_DATE="/usr/local/bin/date"
C_SENDMAIL="/var/qmail/bin/qmail-inject"
#C_SENDMAIL="/usr/SUNWale/bin/mailx"
C_TOUCH="/usr/local/bin/touch"
C_AWK="/usr/local/bin/awk"
C_RM="/usr/local/bin/rm"

#スフセ
SIG_MESSAGE="ChkAlive Ver.0.2"


#----------------------
#エリソ

#IP・「・ノ・・ケ、ォ、鬣ウ・・ヤ・蝪シ・ソフセ、ハヨ、ケ
function _IP_TO_NAME()
{
	BUF_NAME=`eval $C_NSLOOKUP $1`
	return
}

#Ping、チ、テ、ニ。「セツヨ、ウホヌァ
function _SEND_PING()
{
	#pingチソョ(・ソ・、・爭「・ヲ・ネ3ノテ)
	STATE=`eval $C_PING $1 3 | $C_AWK '{print $3}'`
    
    #、筅キ alive 、ハ、 0 、ハヨ、ケ
	if [ $STATE = "alive" ]; then
		return 0
	else
		return 1
	fi
}

#ニスナチソョヒノサ゚・ユ・鬣ー、ホセツヨ・チ・ァ・テ・ッ
function _CHK_FLUG()
{
	#・ユ・鬣ー、ャホゥ、テ、ニ、、、、ミ 0 、ハヨ、ケ
	if [ -f ${DIR_FLUG}flg_$1 ]; then
		return 0
	else
		return 1
	fi
}

#ニスナチソョヒノサ゚・ユ・鬣ー、ホゥ、ニ、
function _MAKE_FLUG()
{
	$C_TOUCH ${DIR_FLUG}flg_$1
}

#ニスナチソョヒノサ゚・ユ・鬣ー、セテ、ケ
function _DEL_FLUG()
{
	$C_RM ${DIR_FLUG}flg_$1
}

#ト莉゚、キ、ニ、、、サン、ホ・癸シ・、チソョ
function _SEND_REPORT_DEAD()
{
	echo -n "Sending Mail ($1 is dead)... "
	
	#ヒワハク、ホコタョ
	BUF_DATE=`eval $C_DATE`
	_IP_TO_NAME $1

	env - $C_SENDMAIL -f${RET_MAIL} << EOF
To: $LIST_MAIL
From: ServerRepor <>
Subject: $BUF_NAME is DEAD!

$BUF_DATE
$BUF_NAME ($1) is dead!

---
$SIG_MESSAGE
EOF

    echo "done"

}

#ノオ「、キ、ソサン、・癸シ・、ヌチソョ
function _SEND_REPORT_ALIVE()
{

	echo -n "Sending Mail ($1 is alive)... "

	#ヒワハク、ホコタョ
	BUF_DATE=`eval $C_DATE`
	_IP_TO_NAME $1

	env - $C_SENDMAIL -f${RET_MAIL} << EOF
To: $LIST_MAIL
From: ServerReport <>
Subject: $BUF_NAME is alive.

$BUF_DATE
$BUF_NAME ($1) is alive, thank you!

---
$SIG_MESSAGE
EOF

    echo ""

}


#----------------------
#・皈、・ス靉

i=0

while [ ${LIST_IP[i]} != "null" ]
do

  echo -n "Checking[${LIST_IP[i]}]..."
  
  #pingチソョ
  _SEND_PING ${LIST_IP[i]}
  if [ $? -ne 0 ]; then

	  #dead、ハ、
	  echo "[dead] "

	  #・ユ・鬣ー、ャホゥ、テ、ニ、、、、ォ・チ・ァ・テ・ッ
	  _CHK_FLUG ${LIST_IP[i]}
	  if [ $? -ne 0 ]; then
		  #・ユ・鬣ー、ャホゥ、テ、ニ、ハ、ア、、ミ
		  #ト莉゚、キ、ニ、、、サン、・癸シ・、ヌトフテホ
		  _SEND_REPORT_DEAD ${LIST_IP[i]}
		  #・ユ・鬣ー、ホゥ、ニ、
		  _MAKE_FLUG ${LIST_IP[i]}
	  fi

  else

	  #alive、ハ、
	  echo "[alive] "

	  #・ユ・鬣ー、ャホゥ、テ、ニ、、、、ォ・チ・ァ・テ・ッ
	  _CHK_FLUG ${LIST_IP[i]}
	  if [ $? -eq 0 ]; then
		  #・ユ・鬣ー、ャホゥ、テ、ニ、、、、ミ
		  #ノオ「、キ、ソサン、・癸シ・、ヌトフテホ
		  _SEND_REPORT_ALIVE ${LIST_IP[i]}
		  #・ユ・鬣ー、コス
		  _DEL_FLUG ${LIST_IP[i]}
	  fi
  fi

  #echo "done"

  i=$(($i+1))
done
 

タ篶タ

タ゚トイユス

  • LIST_IP、ヒ。「エニサ、ケ、テシヒ、ホIP・「・ノ・・ケ、ホオ、キ、゙、ケ。」
  • LIST_MAIL、ヒ。「・・ン。シ・ネ、ホチソョタ隘「・ノ・・ケ、サリト熙キ、゙、ケ。」
  • RET_MAIL、ヒ。「ハヨソョタ隘「・ノ・・ケ、サリト熙キ、゙、ケ。」ハヨソョ、キ、ニ、簇ーコ、ヒチエ、ッアニカチヘュ、熙゙、サ、。」

タ゚トイユス遙ハ・・ン。シ・ネニ簣ニ。ヒ

_SEND_REPORT_ALIVE、ネ_SEND_REPORT_ALIVEエリソ、ヒ。「、ス、、セ、・癸シ・ヒワハク、ャニ、テ、ニ、、、゙、ケ。」

	env - $C_SENDMAIL -f${RET_MAIL} << EOF
To: $LIST_MAIL
From: ServerRepor <>
Subject: $BUF_NAME is DEAD!

$BUF_DATE
$BUF_NAME ($1) is dead!

---
$SIG_MESSAGE
EOF

$BUF_DATE、マクスコ゚、ホニサ。「$BUF_NAME、マテシヒ、ホフセチー。ハ、ウ、ウ、ヌ、マdnsname、ヘム、、、ニIP・「・ノ・・ケ、ォ、鮠ォニーナェ、ヒオユー、ュ、キ、ソフセチー、ャニ、テ、ニ、、、゙、ケ。ヒ。「$1、ヒ、マIP・「・ノ・・ケ、ャウハヌシ、オ、、ニ、、、゙、ケ、ホ、ヌ。「ナャナ、ヒヒワハク、ホ・ユ・ゥ。シ・゙・テ・ネ、ス、ュエケ、ィ、ニ、ッ、タ、オ、、。」

2008-09-14 (ニ) 09:30:31

Solaris Administrator


・ネ・テ・ラ   ハヤスク ナ犢 コケハャ ・ミ・テ・ッ・「・テ・ラ ナコノユ ハ」タス フセチーハムケケ ・・。シ・ノ   ソキオャ ーヘ テアクク。コ コヌスェケケソキ   ・リ・・ラ   コヌスェケケソキ、ホRSS
Last-modified: 2008-09-14 (ニ) 09:31:17 (3116d)