[shell] Shell 스크립트 모니터링과 예외 처리 메커니즘 구현

최근에 개발한 Shell 스크립트메모리 부족 오류를 일으켰다. 이 문제를 해결하고 미래에 발생할 수 있는 다른 잠재적인 문제를 예방하기 위해 모니터링과 예외 처리 메커니즘을 구현하는 방법을 알아보자.

1. 모니터링 구현

모니터링을 위해 free 명령어를 사용하여 시스템의 메모리, 스왑 등의 상태를 주기적으로 확인하고 로그에 기록하는 스크립트를 작성할 수 있다. 아래는 모니터링 스크립트의 예시이다.

#!/bin/bash

LOG_FILE="/var/log/memory_monitor.log"

while true
do
    free -m >> $LOG_FILE
    sleep 60
done

이 스크립트는 60초마다 free 명령어를 실행하고 그 결과를 memory_monitor.log 파일에 기록한다. 해당 로그 파일을 정기적으로 확인하여 시스템 리소스에 관한 경고 및 예방 조치를 취할 수 있다.

2. 예외 처리 메커니즘 구현

스크립트가 실행 중인 동안 메모리 부족 상황을 탐지하면, 즉시 이를 처리하는 예외 메커니즘을 구현해야 한다. 예외가 발생했을 때 스크립트가 어떻게 반응할지에 대한 처리를 담은 예시를 아래에 제시한다.

#!/bin/bash

THRESHOLD=100
LOG_FILE="/var/log/memory_monitor.log"
ALERT_FILE="/var/log/memory_alert.log"

while true
do
    total_mem=$(free -m | awk 'NR==2{print $2}')
    free_mem=$(free -m | awk 'NR==2{print $4}')

    if [ $free_mem -lt $THRESHOLD ]; then
        echo "Memory is running low: $free_mem MB remaining" >> $ALERT_FILE
        # 여기에 추가적인 조치를 취하는 로직을 추가할 수 있음
    fi

    sleep 60
done

위 스크립트는 현재 남은 메모리임계치 미만이면 memory_alert.log 파일에 로깅하고 필요한 조치를 취하는 예시를 보여준다.

모니터링과 예외 처리는 스크립트를 안정적으로 운영하기 위해 필수적이며, 이러한 메커니즘을 통해 시스템의 안정성을 향상시킬 수 있다.

참고자료: Linux free 명령어 공식 문서