Shell Script

process 상태 확인

1. 개요

ser_cnt.lst에 있는 내용을 불러와서 process 상태 확인 → ftp로 log 전송

 

2. ser_cnt.lst 파일 내용

scsi:66
watchdog:2

 

3. Source Code

#!/bin/sh
 
LOGDIR="/home/tuser/log/process2.log"
 
echo
echo "===== check service process  ====="
echo
 
for sname in $(cat ./ser_cnt.lst | awk -F: '{print $1}')
do
        pscnt=`ps -ef | grep $sname | grep -v grep | grep -v "@" | wc -l`
        sernum=`grep $sname ./ser_cnt.lst | awk -F: '{print $2}'`
 
        echo "\n* $sname Process count : $pscnt (std : $sernum)"
 
        if [ $pscnt != $sernum ]; then
                echo "* $sname check result : bad.."
                echo "* $sname check result : bad.." >> $LOGDIR
        elif [ $pscnt = $sernum ]; then
                echo "* $sname check result : GOOD!"
                echo "* $sname check result : GOOD!" >> $LOGDIR
        fi
done
 
echo "========================================="
 
if [ -s $LOGDIR ]; then
        echo "점검 로그가 존재합니다. 로그를 상위 서버로 전송합니다."
 
ftp -n 172.16.60.129 <<End-Of-Session
user user user
binary
bell
cd /home/user
lcd /home/tuser/log
put process2.log
quit
End-Of-Session
 
rm -f $LOGDIR
 
else
        echo "점검 로그가 존재하지 않습니다. 로그를 전송하지 않습니다."
 
fi

 

Back To Top