본문 바로가기
IT 이야기 - About IT

[Shell] 파일시스템 체크 쉘

by 회사원 주씨 2009. 6. 16.
반응형

우리 회사에서 사용하고 있는 SMS 전송모듈을 이용해서 파일시스템 체크할 수 있는

쉘을 짠것이다. 예전에 운영 첨으로 할때 할일은 많고 시간은 없고해서

그렇다고 OP들이 있는것도 아니고 ㅠㅠ

시스템 현황체크하는 시간이 아까워 쉘을 공부해서 여러가지 짜본것 중 하나이다.

특정 디렉토리를 5분 단위로 체크하여 지정해논 사용량이상 올라가면 내 휴대폰으로 sms를 날려주도록 한것

sms 관련 쉘은 회사정보가 있으므로 이것만 올린다. ㅎㅎ


<사용환경 : HP-UX 11.23>

#!/bin/ksh

#################################################################################
#
# FileSystem Usage Check Script
# Edit By Hyetaek
#
##################################################################################

ROOT_DIR=/                                                                            # ROOT path
ORACLE_DIR=/oracle                                                                # ORACLE path
BACKUP_DIR=/db_backup/dump                                                # BACKUP DUMP path
ARCHIVE_DBK=/archive/rac1/HLCDBK                                        # DBK_ARCHIVE path
ARCHIVE_DBU=/archive/rac1/HLCDBU                                        # DBU_ARCHIVE path
RTIME=300                                                                               # Refresh time(default 5 min)

RATE_ROOT=`/usr/bin/bdf $ROOT_DIR | grep -v avail | /usr/bin/awk '{print $5}' | /usr/bin/cut -d'%' -f1`
RATE_ORACLE=`/usr/bin/bdf $ORACLE_DIR | grep -v avail | /usr/bin/awk '{print $4}' | sed '1d' | /usr/bin/cut -d'%' -f1`
RATE_BACKUP=`/usr/bin/bdf $BACKUP_DIR | grep -v avail | /usr/bin/awk '{print $5}' | /usr/bin/cut -d'%' -f1`
RATE_ARCHIVE_DBK=`/usr/bin/bdf $ARCHIVE_DBK | grep -v avail | /usr/bin/awk '{print $4}' | sed '1d' | /usr/bin/cut -d'%' -f1`
RATE_ARCHIVE_DBU=`/usr/bin/bdf $ARCHIVE_DBU | grep -v avail | /usr/bin/awk '{print $4}' | sed '1d' | /usr/bin/cut -d'%' -f1`

if [ $1 <> null ];
then
        RTIME=$1
fi

while (true)
do
        if [ $RATE_ROOT -ge 90 ];
        then
                /var/adm/syslog/sys_mon/chk_sms 'HLCDB1 FileSystem for ROOT Usage check!' >> /var/adm/syslog/sys_mon/sms_msg.txt
        fi

        if [ $RATE_ORACLE -ge 90 ];
        then
                /var/adm/syslog/sys_mon/chk_sms 'HLCDB1 FileSystem for ORALCE Usage check!' >> /var/adm/syslog/sys_mon/sms_msg.txt
        fi

        if [ $RATE_BACKUP -ge 95 ];
        then
                /var/adm/syslog/sys_mon/chk_sms 'HLCDB1 FileSystem for db_backup Usage check!' >> /var/adm/syslog/sys_mon/sms_msg.txt
        fi

        if [ $RATE_ARCHIVE_DBK -ge 80 ];
        then
                /var/adm/syslog/sys_mon/chk_sms 'HLCDB1 FileSystem for ARCHIVE_HLCDBK Usage check!' >> /var/adm/syslog/sys_mon/sms_msg.txt
        fi

        if [ $RATE_ARCHIVE_DBU -ge 80 ];
        then
                /var/adm/syslog/sys_mon/chk_sms 'HLCDB1 FileSystem for ARCHIVE_HLCDBU Usage check!' >> /var/adm/syslog/sys_mon/sms_msg.txt
        fi

        sleep $RTIME           
done

지금보면 허접하지만 기록을 위해서 ㅎㅎㅎ

728x90