Introdução
Neste projeto, você aprenderá como criar um monitor de sistema Linux usando Python e a biblioteca Tkinter. O monitor de sistema exibirá informações em tempo real sobre a CPU, RAM, uso do disco e estatísticas de rede.
👀 Pré-visualização

🎯 Tarefas
Neste projeto, você aprenderá:
- Como criar uma interface gráfica do usuário (GUI - Graphical User Interface) usando Tkinter.
- Como usar a biblioteca
psutilpara obter informações do sistema em tempo real. - Como exibir o uso da CPU, uso da RAM, uso do disco e estatísticas de rede.
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Criar uma GUI em Python usando Tkinter.
- Usar a biblioteca
psutilpara obter informações do sistema. - Atualizar rótulos com dados em tempo real.
- Organizar informações usando frames (quadros) e widgets notebook (caderno).
Criar os arquivos do projeto
Crie um arquivo chamado linux_system_monitor.py e abra-o em seu editor de texto.
cd ~/project
touch linux_system_monitor.py
Criar a GUI
Adicione o seguinte código para criar a interface gráfica do usuário (GUI - Graphical User Interface) para o monitor do sistema:
import tkinter as tk
from tkinter import ttk
import psutil
root = tk.Tk()
root.title('Linux System Monitor')
Instale a biblioteca psutil usando o seguinte comando:
sudo pip install psutil
Criar o widget Notebook para separar categorias de informação
Adicione o seguinte código para criar um widget Notebook, que nos permite separar diferentes categorias de informação do sistema:
notebook = ttk.Notebook(root)
notebook.pack()
Adicionaremos frames ao notebook no próximo passo.
Criar Frames
Adicione o seguinte código para criar frames para cada categoria de informação do sistema:
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)
No código acima, estamos criando quatro frames, um para cada categoria de informação do sistema. O parâmetro padding adiciona um preenchimento de 10 pixels em torno de cada frame.
Adicionar Frames ao Notebook
Adicione o seguinte código para adicionar os frames ao 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')
Estamos adicionando os frames ao notebook usando o método add(). O parâmetro text especifica o texto que será exibido na aba para cada frame.
Criar Rótulos para os Frames
Adicione o seguinte código para criar labels para cada frame:
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()
Essas labels serão preenchidas com informações do sistema em tempo real no próximo passo.
Preencher Rótulos com Informações em Tempo Real
Adicione o seguinte código para atualizar as labels com informações do sistema em tempo real:
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()
A função update_labels() é chamada a cada segundo usando o método after(). O método after() recebe dois parâmetros: o tempo em milissegundos e a função a ser chamada.
Executar o Projeto
Para executar o projeto, adicione o seguinte código no final do seu arquivo:
root.mainloop()
Finalmente, mude para a Área de Trabalho (Desktop) e execute o projeto usando o seguinte comando:
python linux_system_monitor.py

Resumo
Neste projeto, você aprendeu como criar um monitor de sistema Linux usando Python e a biblioteca Tkinter. O monitor de sistema exibe informações em tempo real sobre o uso da CPU, RAM, disco e estatísticas de rede. Ao seguir as instruções passo a passo e executar o código, você criou com sucesso um monitor de sistema funcional.



