거점 서버에서 원격지 서버의 /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