파이썬

[파이썬] 지정한 시간동안 리눅스 시스템 모니터링

lowcodingpython 2023. 12. 10. 13:42
반응형

지정한 초, 분, 시간 단위로 리눅스 서버의 CPU, 메모리, 디스크 사용률을 수집하고. log파일로 저장

 

import psutil
import logging
import time

# 로깅 설정
logging.basicConfig(filename='system_monitor.log', level=logging.INFO, 
                    format='%(asctime)s - %(message)s')

while True:
    print("===="*10)  # 로그 사이를 구분하기 위한 구분선

    # CPU 사용률
    cpu_usage = psutil.cpu_percent()
    logging.info(f'CPU usage: {cpu_usage}%')
    print(f'CPU usage: {cpu_usage}%')

    # 메모리 사용률
    memory_info = psutil.virtual_memory()
    memory_usage = memory_info.percent
    logging.info(f'Memory usage: {memory_usage}%')
    print(f'Memory usage: {memory_usage}%')

    # 디스크 사용률
    disk_usage = psutil.disk_usage('/').percent
    logging.info(f'Disk usage: {disk_usage}%')
    print(f'Disk usage: {disk_usage}%')

    print("Waiting for the next log...")
    for _ in range(30):  # 30초 동안 '-' 출력
        print("-", end='', flush=True)
        time.sleep(1)
    print(">", end='\n')  # 30초 후 '>'로 마무리

 

실행 시 바로 서버의 CPU, MEM, DISk 정보가 쉘에 표기되고 xx.log 형식으로 실행한 디렉터리 내부에 로그가 저장 

1초마다 '-'이 하나씩 증가하며 30초 부분에 '>' 

반응형