Introduction
Dans ce projet, vous allez apprendre à créer un moniteur de système Linux à l'aide de Python et de la bibliothèque Tkinter. Le moniteur de système affichera des informations en temps réel sur le CPU, la mémoire vive, l'utilisation du disque et les statistiques réseau.
👀 Aperçu

🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment créer une interface graphique utilisateur (GUI) à l'aide de Tkinter.
- Comment utiliser la bibliothèque
psutilpour obtenir des informations système en temps réel. - Comment afficher l'utilisation du CPU, l'utilisation de la mémoire vive, l'utilisation du disque et les statistiques réseau.
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Créer une GUI en Python à l'aide de Tkinter.
- Utiliser la bibliothèque
psutilpour obtenir des informations système. - Mettre à jour des étiquettes avec des données en temps réel.
- Organiser des informations à l'aide de cadres et de widgets de carnet.
Créer les fichiers du projet
Créez un fichier nommé linux_system_monitor.py et ouvrez-le dans votre éditeur de texte.
cd ~/projet
touch linux_system_monitor.py
Créer l'interface graphique utilisateur (GUI)
Ajoutez le code suivant pour créer l'interface graphique utilisateur (GUI) du moniteur de système :
import tkinter as tk
from tkinter import ttk
import psutil
root = tk.Tk()
root.title('Linux System Monitor')
Installez la bibliothèque psutil à l'aide de la commande suivante :
sudo pip install psutil
Créer un widget Notebook pour séparer les catégories d'informations
Ajoutez le code suivant pour créer un widget de carnet, qui nous permet de séparer les différentes catégories d'informations système :
notebook = ttk.Notebook(root)
notebook.pack()
Nous ajouterons des cadres au carnet dans l'étape suivante.
Créer des cadres
Ajoutez le code suivant pour créer des cadres pour chaque catégorie d'informations système :
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)
Dans le code ci-dessus, nous créons quatre cadres, un pour chaque catégorie d'informations système. Le paramètre padding ajoute un rembourrage de 10 pixels autour de chaque cadre.
Ajouter des cadres au Notebook
Ajoutez le code suivant pour ajouter les cadres au carnet :
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')
Nous ajoutons les cadres au carnet en utilisant la méthode add(). Le paramètre text spécifie le texte qui sera affiché sur l'onglet pour chaque cadre.
Créer des étiquettes pour les cadres
Ajoutez le code suivant pour créer des étiquettes pour chaque cadre :
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()
Ces étiquettes seront remplies d'informations système en temps réel dans l'étape suivante.
Remplir les étiquettes avec des informations en temps réel
Ajoutez le code suivant pour mettre à jour les étiquettes avec des informations système en temps réel :
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()
La fonction update_labels() est appelée toutes les secondes en utilisant la méthode after(). La méthode after() prend deux paramètres : le temps en millisecondes et la fonction à appeler.
Exécuter le projet
Pour exécuter le projet, ajoutez le code suivant à la fin de votre fichier :
root.mainloop()
Enfin, basculez sur le bureau et exécutez le projet en utilisant la commande suivante :
python linux_system_monitor.py

Résumé
Dans ce projet, vous avez appris à créer un moniteur de système Linux à l'aide de Python et de la bibliothèque Tkinter. Le moniteur de système affiche des informations en temps réel sur le CPU, la RAM, l'utilisation du disque et les statistiques réseau. En suivant les instructions étape par étape et en exécutant le code, vous avez créé avec succès un moniteur de système fonctionnel.



