살면서 쓰게 되는 스크립트

시스템 모니터링

mobilegameit 2024. 9. 3. 16:22
반응형

기능

  • 시스템 리소스(CPU, 메모리, 디스크 등)의 사용량을 모니터링합니다.
  • 특정 조건이 충족되면 알림을 생성하거나 로그를 기록합니다.
  • 시스템 상태를 시각적으로 표시합니다.

필요한 라이브러리

  • psutil: 시스템 및 프로세스의 정보를 조회할 수 있는 라이브러리.
  • matplotlib: 데이터를 시각화할 수 있는 라이브러리(선택 사항).
  • schedule: 주기적으로 작업을 실행할 수 있는 라이브러리(선택 사항).

스크립트 예제

아래는 Python으로 작성된 시스템 모니터링 스크립트의 예입니다. 이 스크립트는 CPU와 메모리 사용량을 모니터링하고, 결과를 CSV 파일에 저장합니다.

필요한 라이브러리 설치

먼저, 필요한 라이브러리를 설치합니다.

스크립트 설명

  1. 필요한 라이브러리 임포트:
    • psutil: 시스템 정보를 가져오기 위해 사용됩니다.
    • csv: 데이터를 CSV 파일에 저장하기 위해 사용됩니다.
    • time: 현재 시간을 가져오기 위해 사용됩니다.
    • schedule: 주기적으로 작업을 실행하기 위해 사용됩니다.
  2. monitor_system 함수 정의:
    • 현재 시간을 가져옵니다.
    • psutil.cpu_percent(interval=1): CPU 사용량을 가져옵니다.
    • psutil.virtual_memory(): 메모리 정보를 가져와 사용량을 확인합니다.
    • psutil.disk_usage('/'): 루트 디스크의 사용량을 가져옵니다.
    • 결과를 콘솔에 출력하고, CSV 파일에 기록합니다.
  3. 메인 함수:
    • CSV 파일을 초기화하여 헤더를 작성합니다.
    • schedule.every(5).seconds.do(monitor_system): 시스템 모니터링을 5초마다 수행하도록 설정합니다.
    • while True 루프에서 주기적으로 작업을 실행합니다.

실행 방법

  1. Python이 설치되어 있는지 확인합니다.
  2. 위 코드를 system_monitoring.py와 같은 파일로 저장합니다.
  3. 명령 프롬프트 또는 터미널을 열고 다음 명령어를 입력하여 실행합니다:

  1. 스크립트가 실행되면 매 5초마다 CPU, 메모리, 디스크 사용량이 콘솔에 출력되고 system_monitoring.csv 파일에 기록됩니다.

주의사항

  • CSV 파일 크기: 시간이 지나면서 CSV 파일의 크기가 커질 수 있으므로, 필요에 따라 로그 파일을 주기적으로 정리하거나 압축하는 작업을 추가할 수 있습니다.
  • 모니터링 간격: 시스템 성능에 영향을 미치지 않도록 모니터링 간격을 적절히 설정해야 합니다. 현재 설정은 5초마다 실행되도록 되어 있습니다.
  • 필요한 데이터 추가: 추가로 네트워크 사용량, 프로세스 정보 등을 모니터링하려면 psutil의 다양한 기능을 활용할 수 있습니다.

이렇게 하면 시스템의 성능을 모니터링하고 데이터를 기록할 수 있는 유용한 스크립트를 갖게 됩니다!

반응형