[shell] 자동화된 Shell 스크립트 모니터링 방법

이 기술 블로그에서는 Shell 스크립트를 사용하여 시스템 및 응용 프로그램을 자동화, 감시하고 문제를 해결하는 방법에 대해 다루겠습니다.

  1. 스크립트 감시를 위한 inotifywait 사용하기
  2. 로그 파일 감시하기
  3. Cron 작업 모니터링

1. 스크립트 감시를 위한 inotifywait 사용하기

inotifywait는 리눅스 시스템에서 파일 시스템 이벤트를 실시간으로 감시하는 도구입니다. 이를 사용하여 특정 디렉터리 내의 파일 생성, 수정, 삭제 등의 이벤트를 모니터링할 수 있습니다.

다음은 inotifywait로 디렉터리 내의 새로운 파일을 감지하는 간단한 예제입니다.

#!/bin/bash
while inotifywait -e create /path/to/directory; do
  echo "New file detected!"
  # Additional handling for the new file
done

2. 로그 파일 감시하기

시스템 및 응용 프로그램의 로그 파일을 주기적으로 감시하여 오류 메시지나 비정상적인 동작을 식별하는 것은 중요합니다. 이를 자동화하기 위해 tail 명령어와 grep을 사용할 수 있습니다.

다음은 로그 파일에서 특정 키워드를 감지하는 스크립트의 예시입니다.

#!/bin/bash
tail -n 0 -f /var/log/application.log | while read line; do
  if echo "$line" | grep -q "ERROR"; then
    echo "Error detected: $line"
    # Additional error handling
  fi
done

3. Cron 작업 모니터링

Cron을 사용하여 예약된 작업을 실행하는 경우, 작업의 실행 여부 및 결과를 모니터링하는 것이 중요합니다. grepcron 로그 파일을 감시하여 문제가 발생할 때 자동으로 알림을 받을 수 있습니다.

다음은 cron 로그 파일을 감시하여 특정 작업의 실행 여부를 확인하는 예제입니다.

#!/bin/bash
while true; do
  if grep -q "ERROR" /var/log/cron; then
    echo "Cron job error detected!"
    # Additional error handling
  fi
  sleep 60
done

위의 방법들을 이용하여 Shell 스크립트를 사용하여 시스템 및 응용 프로그램을 감시하고 문제를 식별하는 자동화 된 감시 시스템을 구축할 수 있습니다.