Tkinter 를 사용한 Linux 시스템 모니터

PythonBeginner
지금 연습하기

소개

이 프로젝트에서는 Python 과 Tkinter 라이브러리를 사용하여 Linux 시스템 모니터를 만드는 방법을 배우게 됩니다. 시스템 모니터는 CPU, RAM, 디스크 사용량 및 네트워크 통계에 대한 실시간 정보를 표시합니다.

👀 미리보기

Linux system monitor GUI preview

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다:

  • Tkinter 를 사용하여 GUI (Graphical User Interface, 그래픽 사용자 인터페이스) 를 만드는 방법.
  • psutil 라이브러리를 사용하여 실시간 시스템 정보를 얻는 방법.
  • CPU 사용량, RAM 사용량, 디스크 사용량 및 네트워크 통계를 표시하는 방법.

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • Tkinter 를 사용하여 Python 에서 GUI 를 생성합니다.
  • psutil 라이브러리를 사용하여 시스템 정보를 얻습니다.
  • 실시간 데이터로 레이블을 업데이트합니다.
  • 프레임과 노트북 위젯을 사용하여 정보를 구성합니다.
이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 중급 레벨의 실험이며 완료율은 69%입니다.학습자들로부터 96%의 긍정적인 리뷰율을 받았습니다.

프로젝트 파일 생성

linux_system_monitor.py라는 파일을 생성하고 텍스트 편집기에서 엽니다.

cd ~/project
touch linux_system_monitor.py
✨ 솔루션 확인 및 연습

GUI 생성

시스템 모니터의 GUI (Graphical User Interface, 그래픽 사용자 인터페이스) 를 생성하기 위해 다음 코드를 추가합니다:

import tkinter as tk
from tkinter import ttk
import psutil

root = tk.Tk()
root.title('Linux System Monitor')

다음 명령을 사용하여 psutil 라이브러리를 설치합니다:

sudo pip install psutil
✨ 솔루션 확인 및 연습

정보 카테고리 분리를 위한 Notebook 위젯 생성

다양한 시스템 정보 카테고리를 분리할 수 있는 notebook 위젯을 생성하기 위해 다음 코드를 추가합니다:

notebook = ttk.Notebook(root)
notebook.pack()

다음 단계에서 notebook 에 프레임을 추가할 것입니다.

✨ 솔루션 확인 및 연습

프레임 생성

각 시스템 정보 카테고리에 대한 프레임을 생성하기 위해 다음 코드를 추가합니다:

cpu_frame = ttk.Frame(notebook, padding=10)
ram_frame = ttk.Frame(notebook, padding=10)
disk_frame = ttk.Frame(notebook, padding=10)
network_frame = ttk.Frame(notebook, padding=10)

위 코드에서는 각 시스템 정보 카테고리별로 하나씩, 총 네 개의 프레임을 생성하고 있습니다. padding 매개변수는 각 프레임 주변에 10 픽셀의 패딩을 추가합니다.

✨ 솔루션 확인 및 연습

Notebook 에 프레임 추가

notebook 에 프레임을 추가하기 위해 다음 코드를 추가합니다:

notebook.add(cpu_frame, text='CPU Info')
notebook.add(ram_frame, text='RAM Info')
notebook.add(disk_frame, text='Disk Info')
notebook.add(network_frame, text='Network Info')

add() 메서드를 사용하여 프레임을 notebook 에 추가하고 있습니다. text 매개변수는 각 프레임의 탭에 표시될 텍스트를 지정합니다.

✨ 솔루션 확인 및 연습

프레임에 대한 레이블 생성

각 프레임에 대한 레이블을 생성하기 위해 다음 코드를 추가합니다:

cpu_percent_label = ttk.Label(cpu_frame)
cpu_percent_label.pack()

ram_percent_label = ttk.Label(ram_frame)
ram_percent_label.pack()

disk_percent_label = ttk.Label(disk_frame)
disk_percent_label.pack()

network_label = ttk.Label(network_frame)
network_label.pack()

이러한 레이블은 다음 단계에서 실시간 시스템 정보로 채워질 것입니다.

✨ 솔루션 확인 및 연습

실시간 정보로 레이블 채우기

실시간 시스템 정보로 레이블을 업데이트하기 위해 다음 코드를 추가합니다:

def update_labels():
    cpu_percent = psutil.cpu_percent()
    cpu_percent_label.config(text=f'CPU Usage: {cpu_percent}%')

    ram_percent = psutil.virtual_memory().percent
    ram_percent_label.config(text=f'RAM Usage: {ram_percent}%')

    disk_percent = psutil.disk_usage('/').percent
    disk_percent_label.config(text=f'Disk Usage: {disk_percent}%')

    network_stats = psutil.net_io_counters()
    network_label.config(text=f'Network Stats:\nBytes Sent: {network_stats.bytes_sent}\nBytes Received: {network_stats.bytes_recv}')

    root.after(1000, update_labels)

update_labels()

update_labels() 함수는 after() 메서드를 사용하여 매 초마다 호출됩니다. after() 메서드는 두 개의 매개변수를 받습니다: 밀리초 단위의 시간과 호출할 함수입니다.

✨ 솔루션 확인 및 연습

프로젝트 실행

프로젝트를 실행하려면 파일 끝에 다음 코드를 추가합니다:

root.mainloop()

마지막으로, 데스크톱으로 전환하여 다음 명령을 사용하여 프로젝트를 실행합니다:

python linux_system_monitor.py
Project execution command screenshot
✨ 솔루션 확인 및 연습

요약

이 프로젝트에서 Python 과 Tkinter 라이브러리를 사용하여 Linux 시스템 모니터를 만드는 방법을 배웠습니다. 시스템 모니터는 CPU, RAM, 디스크 사용량 및 네트워크 통계에 대한 실시간 정보를 표시합니다. 단계별 지침을 따르고 코드를 실행함으로써 기능적인 시스템 모니터를 성공적으로 만들었습니다.