안녕하세요, 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와 메모리 사용량을 모니터링하는 스크립트를 작성해 보았습니다. 시스템 모니터링은 서버의 성능을 최적화하고, 문제를 조기에 발견하는 데 중요한 역할을 합니다. 주기적으로 모니터링을 수행하여 시스템의 안정성을 유지하는 데 도움이 되길 바랍니다.
읽어주셔서 감사합니다. 다음 포스팅에서 만나요!