Bash Scripts

26일차: 리눅스 시스템 모니터링 스크립트 작성 방법

안녕하세요, MJ입니다. 오늘은 리눅스 시스템에서 CPU와 메모리 사용량을 모니터링하는 스크립트를 작성해 보겠습니다. 시스템 모니터링은 서버의 성능을 유지하고, 문제를 조기에 발견하는 데 중요한 역할을 합니다. 이번 포스팅에서는 간단한 스크립트를 통해 CPU와 메모리 사용량을 실시간으로 확인할 수 있는 방법을 알아보겠습니다.

1. 시스템 모니터링의 중요성

시스템 모니터링은 서버의 상태를 지속적으로 확인하여, 자원이 과도하게 사용되거나 시스템에 문제가 발생하기 전에 조치를 취할 수 있게 해줍니다. CPU와 메모리 사용량을 모니터링함으로써, 애플리케이션의 성능을 최적화하고, 서버의 안정성을 유지할 수 있습니다.

2. CPU와 메모리 사용량 확인하기

리눅스에서는 top 명령어 또는 vmstat 명령어를 사용하여 CPU와 메모리 사용량을 확인할 수 있습니다. 하지만 이러한 명령어는 수동으로 실행해야 하므로, 자동으로 정보를 수집하는 스크립트를 작성하는 것이 좋습니다.

3. 모니터링 스크립트 작성하기

이제 CPU와 메모리 사용량을 모니터링하는 간단한 스크립트를 작성해 보겠습니다. 아래의 스크립트는 사용자의 시스템에서 CPU와 메모리 사용량을 주기적으로 기록하여 파일에 저장합니다.

#!/bin/bash

# 로그 파일 경로
LOG_FILE="/var/log/system_monitor.log"

# 스크립트 시작
echo "시스템 모니터링 시작: $(date)" >> $LOG_FILE

# 주기적으로 CPU와 메모리 사용량 기록
while true; do
    # 현재 시간
    TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
    
    # CPU 사용량
    CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
    
    # 메모리 사용량
    MEM_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
    
    # 로그 파일에 기록
    echo "$TIMESTAMP CPU 사용량: $CPU_USAGE% 메모리 사용량: $MEM_USAGE%" >> $LOG_FILE
    
    # 5초 대기
    sleep 5
done

3.1 스크립트 설명

위 스크립트는 다음과 같은 기능을 수행합니다:

  • 스크립트가 시작되면 현재 시간을 로그 파일에 기록합니다.
  • CPU 사용량을 top 명령어를 통해 확인하고, 이를 계산하여 기록합니다.
  • 메모리 사용량은 free 명령어를 사용하여 계산한 후 기록합니다.
  • 5초마다 이 작업을 반복합니다.

4. 스크립트 실행하기

위 스크립트를 monitor.sh라는 파일 이름으로 저장하고 실행 권한을 부여한 후 실행합니다:

chmod +x monitor.sh
./monitor.sh

스크립트를 실행하면, /var/log/system_monitor.log 파일에 CPU와 메모리 사용량이 기록됩니다.

4.1 로그 파일 확인

로그 파일의 내용을 확인하려면 다음 명령어를 사용합니다:

cat /var/log/system_monitor.log

출력 결과는 다음과 같을 수 있습니다:

시스템 모니터링 시작: 2025-02-21 12:00:00
2025-02-21 12:00:05 CPU 사용량: 23.5% 메모리 사용량: 56.7%
2025-02-21 12:00:10 CPU 사용량: 20.1% 메모리 사용량: 55.0%
2025-02-21 12:00:15 CPU 사용량: 22.3% 메모리 사용량: 54.3%

5. 결론

이번 포스팅에서는 리눅스 시스템에서 CPU와 메모리 사용량을 모니터링하는 스크립트를 작성해 보았습니다. 시스템 모니터링은 서버의 성능을 최적화하고, 문제를 조기에 발견하는 데 중요한 역할을 합니다. 주기적으로 모니터링을 수행하여 시스템의 안정성을 유지하는 데 도움이 되길 바랍니다.

읽어주셔서 감사합니다. 다음 포스팅에서 만나요!

27일차: 리눅스 사용자 관리 스크립트 작성 방법>
25일차: 고급 스크립트 기법 – 고급 스크립트 실습>
목차로 가기

mj

Recent Posts

대화형 데이터 시각화의 장점과 활용 방법 | 파이썬 가이드

파이썬을 활용한 대화형 데이터 시각화의 장점과 다양한 활용 사례를 알아보세요.

4일 ago

파이썬 대화형 데이터 시각화 기초 – MJ의 블로그

대화형 데이터 시각화의 기초를 배우고, 파이썬을 활용한 다양한 기법을 알아보세요.

4주 ago

파이썬으로 대화형 데이터 시각화 만드는 방법

파이썬으로 대화형 데이터 시각화를 만드는 방법을 알아보세요. 다양한 예시와 함께 제공합니다.

1개월 ago

대화형 데이터 분석 도구의 완벽한 가이드

대화형 데이터 분석 도구의 종류와 사용법을 소개합니다. 예시와 함께 알아보세요.

1개월 ago

파이썬 대화형 대시보드 디자인 원칙

대화형 대시보드의 효과적인 디자인 원칙과 예시를 소개합니다.

2개월 ago

파이썬으로 대화형 대시보드 구현하기 – mj의 블로그

파이썬을 이용한 대화형 대시보드 구현 방법을 배우고 다양한 예시를 확인하세요.

2개월 ago