[파이썬] 파이썬으로 리눅스 시스템 정보 수집

리눅스 시스템에서 다양한 정보를 수집하는 것은 시스템 관리 및 모니터링 작업에서 중요한 요소입니다. 파이썬은 강력한 프로그래밍 언어로, 이러한 작업을 간단하고 효과적으로 수행할 수 있도록 도와줍니다. 이 블로그 포스트에서는 파이썬을 사용하여 리눅스 시스템 정보를 수집하는 방법을 알아보겠습니다.

1. psutil 라이브러리 사용

리눅스 시스템 정보를 수집하기 위해 psutil 라이브러리를 사용할 수 있습니다. 이 라이브러리는 파이썬에서 프로세스 및 시스템 정보에 액세스할 수 있는 편리한 인터페이스를 제공합니다.

import psutil

# CPU 정보 가져오기
cpu_percent = psutil.cpu_percent()
cpu_count = psutil.cpu_count()

# 메모리 정보 가져오기
mem = psutil.virtual_memory()
mem_total = mem.total
mem_used = mem.used
mem_percent = mem.percent

# 디스크 정보 가져오기
disk = psutil.disk_usage('/')
disk_total = disk.total
disk_used = disk.used
disk_percent = disk.percent

위의 예제에서는 psutil 라이브러리를 사용하여 CPU, 메모리 및 디스크의 사용량과 백분율을 얻는 방법을 보여줍니다.

2. /proc 파일 시스템 사용

리눅스 운영체제에서는 /proc 파일 시스템을 통해 시스템 및 프로세스 정보에 대한 다양한 상세한 정보를 제공합니다. 파이썬을 사용하여 이러한 정보를 읽고 처리할 수 있습니다.

import os

# CPU 정보 가져오기
with open('/proc/cpuinfo') as f:
    cpuinfo = f.read()

# 메모리 정보 가져오기
with open('/proc/meminfo') as f:
    meminfo = f.read()

# 디스크 정보 가져오기
stat = os.statvfs('/')
total_space = (stat.f_blocks * stat.f_frsize) # 전체 공간
available_space = (stat.f_bavail * stat.f_frsize) # 사용 가능한 공간
used_space = (stat.f_blocks - stat.f_bfree) * stat.f_frsize # 사용 중인 공간

위의 코드에서는 /proc/cpuinfo, /proc/meminfo, /proc/mounts 파일을 읽어와서 CPU, 메모리 및 디스크 정보를 가져오는 방법을 보여줍니다.

결론

파이썬을 사용하여 리눅스 시스템 정보를 수집하는 것은 간단하고 유용한 작업입니다. psutil 라이브러리를 사용하면 프로세스 및 시스템 정보를 쉽게 얻을 수 있고, /proc 파일 시스템을 사용하면 더 상세한 정보를 얻을 수 있습니다. 이러한 방법들을 통해 리눅스 시스템 관리 작업을 자동화하고 모니터링하는 데 도움이 될 것입니다.