リモートホストに対してロケールでShift-JISを設定する

#!/bin/sh

##########################################################
# SET VARIABLE
##########################################################
CURDIR=`dirname $0`
LOG=${CURDIR}/log/check_rsh.$$
HOSTLIST=$1
SHELL_NAME=`basename $0`
RSH="/usr/bin/rsh"
LOCALE="/usr/bin/locale -a"
LOCALEDEF="/usr/bin/localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS"
SJIS="ja_JP.sjis"
DATE=`date | awk '{print $5}'`
COUNT=1

##########################################################
# CHECK ARGUMENT
##########################################################
if [ $# -ne 1 ]; then
        echo "USAGE : ${SHELL_NAME} <hostlist>"
        exit 1
fi

if [ ! -f ${HOSTLIST} ]; then
        echo "ERROR : File not found [${HOSTLIST}]"
        exit 1
fi


##########################################################
# MAIN
##########################################################

for HOST in `cat ${HOSTLIST}`
do


        ##################################################
        # CHECK HOSTNAME
        ##################################################
        grep -q ${HOST} /etc/hosts
        if [ $? -ne 0 ]; then
                echo "[Host not found] ${HOST}"
                echo
                continue
        fi


${RSH} ${HOST} "${LOCALE} | grep -q ${SJIS} ; echo \$?" > ${LOG}

STAT=`cat ${LOG}`

        if [ ${STAT} -ne 0 ]; then
                ${RSH} ${HOST} "${LOCALEDEF} > /dev/null 2>&1"
                ${RSH} ${HOST} "${LOCALE} | grep -q ${SJIS} ; echo \$?" > ${LOG}

                _STAT=`cat ${LOG}`

                if [ ${_STAT} -ne 0 ]; then
                        echo "[${COUNT}] ${DATE} [FAILURE] ${HOST} "
                        echo

                else
                        echo "[${COUNT}] ${DATE} [SUCCESS] ${HOST}"
                        echo
                fi

        else
                echo "[${COUNT}] ${DATE} [SUCCESS] ${HOST}"
                echo
        fi

rm -f ${LOG}
COUNT=`expr ${COUNT} + 1`

done