XNF/AS/BASEのプロセスを監視するシェルスクリプトを作成します。OSI拡張機能を使用する場合は,XNF/AS/BASEのプロセスに加えて,XNF/AS/OSI Extensionのプロセスも監視するシェルスクリプトを作成します。
各シェルスクリプトのサンプルは,XNF/ASのサンプルファイル用ディレクトリの下に格納されています。詳細については,「3.10.7 HAモニタで使用するサンプルファイル」を参照してください。
シェルスクリプトのサンプルを次に示します。
- XNF/AS/BASEのプロセスを監視するシェルスクリプト(XNF_monitor.sh)
#!/bin/sh
#
# XNF/AS/BASE (XNF_monitor.sh)
# All Rights Reserved. Copyright (C) 2013, Hitachi, Ltd.
#
# The object program to monitor
# XNF/AS/BASE
XNFELDMON_PROGRAM=/xnfs/bin/XNFeldmon
XNFELDMON_COUNT=1
XNFRASDMON_PROGRAM=/xnfs/bin/XNFrasdmon
XNFRASDMON_COUNT=2
# Tuning parameter
SLEEP_TIME=5
MAX_RETRY_COUNT=3
# The definition of command
PS=/usr/bin/ps
GREP=/usr/bin/grep
WC=/usr/bin/wc
SLEEP=/usr/bin/sleep
BASENAME=/usr/bin/basename
PRINTF=/usr/bin/printf
EXPR=/usr/bin/expr
# process check
ProcessCheck()
{
PROGRAM1=$1
PROGRAM_COUNT=$2
PROGRAM2=`$BASENAME $PROGRAM1`
PROGRAM2=`$PRINTF "%.8s" "$PROGRAM2"`
RETRY_COUNT=0
while [ $RETRY_COUNT -lt $MAX_RETRY_COUNT ]
do
COUNT=`$PS -ef | $GREP -e "${PROGRAM1}" -e "¥[${PROGRAM2}" | $GREP -v grep | $WC -l`
if [ $COUNT -eq $PROGRAM_COUNT ]
then
return 0
else
RETRY_COUNT=`$EXPR $RETRY_COUNT + 1`
fi
$SLEEP $SLEEP_TIME
done
exit
}
# Main loop
{
while true
do
# XNF/AS/BASE
ProcessCheck $XNFELDMON_PROGRAM $XNFELDMON_COUNT
ProcessCheck $XNFRASDMON_PROGRAM $XNFRASDMON_COUNT
$SLEEP $SLEEP_TIME
done
} |
- チューニングパラメタの説明
- 下線で表記したシェル変数はチューニングパラメタです。次のとおり設定してください。
- シェル変数SLEEP_TIME
プロセス監視の実行間隔(単位:秒)を設定してください。
- シェル変数MAX_RETRY_COUNT
プロセス監視の最大試行回数を設定してください。
- XNF/AS/BASEとXNF/AS/OSI Extensionのプロセスを監視するシェルスクリプト(XNF_OSIEX_monitor.sh)
#!/bin/sh
#
# XNF/AS/OSI Extension (XNF_OSIEX_monitor.sh)
# All Rights Reserved. Copyright (C) 2013, Hitachi, Ltd.
#
# The object program to monitor
# XNF/AS/BASE
XNFELDMON_PROGRAM=/xnfs/bin/XNFeldmon
XNFELDMON_COUNT=1
XNFRASDMON_PROGRAM=/xnfs/bin/XNFrasdmon
XNFRASDMON_COUNT=2
# XNF/AS/OSI Extension
XNFTPCLIDMON=/etc/xnftpclidmon
XNFTPGWDMON=/etc/xnftpgwdmon
XNFTPLSNDMON=/etc/xnftplsndmon
# Tuning parameter
SLEEP_TIME=5
MAX_RETRY_COUNT=3
# The definition of command
PS=/usr/bin/ps
GREP=/usr/bin/grep
WC=/usr/bin/wc
SLEEP=/usr/bin/sleep
BASENAME=/usr/bin/basename
PRINTF=/usr/bin/printf
EXPR=/usr/bin/expr
# process check
ProcessCheck()
{
PROGRAM1=$1
PROGRAM_COUNT=$2
PROGRAM2=`$BASENAME $PROGRAM1`
PROGRAM2=`$PRINTF "%.8s" "$PROGRAM2"`
RETRY_COUNT=0
while [ $RETRY_COUNT -lt $MAX_RETRY_COUNT ]
do
COUNT=`$PS -ef | $GREP -e "${PROGRAM1}" -e "¥[${PROGRAM2}" | $GREP -v grep | $WC -l`
if [ $COUNT -eq $PROGRAM_COUNT ]
then
return 0
else
RETRY_COUNT=`$EXPR $RETRY_COUNT + 1`
fi
$SLEEP $SLEEP_TIME
done
exit
}
# process check2
ProcessCheck2()
{
PROGRAM1=$1
PROGRAM2=`$BASENAME $PROGRAM1`
PROGRAM2=`$PRINTF "%.8s" "$PROGRAM2"`
RETRY_COUNT=0
while [ $RETRY_COUNT -lt $MAX_RETRY_COUNT ]
do
EXIST=`$PS -ef | $GREP -e "${PROGRAM1}" -e "¥[${PROGRAM2}" | $GREP -v grep`
if [ "$EXIST" != "" ]
then
return 0
else
RETRY_COUNT=`$EXPR $RETRY_COUNT + 1`
fi
$SLEEP $SLEEP_TIME
done
exit
}
# Main loop
{
while true
do
# XNF/AS/BASE
ProcessCheck $XNFELDMON_PROGRAM $XNFELDMON_COUNT
ProcessCheck $XNFRASDMON_PROGRAM $XNFRASDMON_COUNT
# XNF/AS/OSI Extension
ProcessCheck2 $XNFTPCLIDMON
ProcessCheck2 $XNFTPGWDMON
ProcessCheck2 $XNFTPLSNDMON
$SLEEP $SLEEP_TIME
done
} |
- チューニングパラメタの説明
- 下線で表記したシェル変数はチューニングパラメタです。次のとおり設定してください。
- シェル変数SLEEP_TIME
プロセス監視の実行間隔(単位:秒)を設定してください。
- シェル変数MAX_RETRY_COUNT
プロセス監視の最大試行回数を設定してください。