거점 서버에서 원격지 서버의 /var/log/mcelog를 확인할 수 있게해주는 스크립트 임.
RHEL 6.x 에서 테스트 함
# vi mcelogchk.sh
#!/bin/bash
# IP Base File
IPBASE='/base/hosts.dat'
# Variable of option
ARGS=1
E_BADARGS=65
# Options Function
HowTo () {
if [ $# -ne $ARGS ]; then
echo "This script is inquiring about the /var/log/mcelog"
echo "How to : sh `basename $0` -option"
echo ""
echo "The options are :"
echo "-s : Required the ip or hostname."
echo " example) $ sh `basename $0` -s 12.125.102.100 --OR-- $ sh `basename $0` -s HOSTNAME"
echo " (It's only able to input one ip/hostname.)"
echo "-a : All server "
echo " example) $ sh `basename $0` -a"
echo "-h : help"
exit $E_BADARGS
fi
}
# Request inquiry
if [ "$1" == "-s" ]; then
grep $2 /etc/hosts | grep -v ^# >& /dev/null
if [ $? == 1 ]; then
IPADDR=$(grep $2 $IPBASE | | grep -v ^# | awk -F ":" '{print $2}')
ssh -t -q $IPADDR "echo '------------' ; grep HOSTNAME /etc/sysconfig/network | cut -d '=' -f2 ; echo '------------' ; find /var/log -size +0 -name mcelog | xargs cat ; echo ''" | grep -v ^find
if [ $? == 1 ]; then
echo "Please, check the ip/hostname."
fi
else
ssh -t -q $2 "echo '------------' ; grep HOSTNAME /etc/sysconfig/network | cut -d '=' -f2 ; echo '------------' ; find /var/log -size +0 -name mcelog | xargs cat ; echo ''" | grep -v ^find
if [ $? == 1 ]; then
echo "Please, check the ip/hostname."
fi
fi
elif [ "$1" == "-a" ]; then
for i in $(cat $IPBASE | grep -v ^# | awk -F ":" '{print $2}')
do
ssh -t -q $i "echo '------------' ; grep HOSTNAME /etc/sysconfig/network | cut -d '=' -f2 ; echo '------------' ; find /var/log -size +0 -name mcelog | xargs cat ; echo ''" | grep -v ^find
done
else
HowTo ;
fi
mcelogchk script