1. Description du module psutil Python
Le langage Python est doté d'un module nommé psutil ayant pour but l'accès aux informations des processus qui sont en cours d'exécution, aux ressources mémoires, aux différents stockages: disques internes, carte mémoire...Il s'agit donc d'un outil Python puissant pour gérer les ressources système. Le module psutil ne nécessite aucune installation, il est livré avec le langage Python.
2. Fonctionnalités clés du module psutil
- Gestion des processus: Permet d'obtenir des informations à propos processus en cours d'exécution, leur ID par exemple , usage du CPU, de la mémoire, etc. On peut aussi suspendre ou tuer un processus...
- Surveillance du système: Vous pouvez surveiller l'utilisation de la mémoire, du CPU, des disques et du réseau du système en temps réel.
- Gestion du système de fichiers: Vous pouvez obtenir des informations sur les partitions de disque, les montages, les statistiques d'utilisation du disque, etc.
- Gestion du réseau: Vous pouvez obtenir des informations sur les connexions réseau en cours, telles que les connexions TCP et UDP, ainsi que des statistiques réseau générales.
- Gestion des utilisateurs: Vous pouvez obtenir des informations sur les utilisateurs connectés au système.
3. Exemples d'usages du module psutil Python
Nous donnons ici des exemples simples pour chacun des cas cité ci-dessus. Ces exemples vous montrent comment utiliser les différentes fonctionnalités du module psutil pour gérer les processus, surveiller le système, gérer le système de fichiers, le réseau et les utilisateurs. Voici des exemples pour chacun des cas:
Exemple (Gestion des processus)
Obtenir la liste des processus en cours d'exécution :
1 2 3 4 5 6 |
import psutil # Liste des processus processes = psutil.process_iter() for process in processes: print(process) |
Exemple
Obtenir des informations sur un processus spécifique :
1 2 3 4 5 6 7 |
import psutil # Informations sur le processus avec PID 1234 process = psutil.Process(1234) print(process.name()) print(process.cpu_percent()) print(process.memory_info()) |
Exemple (Tuer un processus)
1 2 3 4 5 6 |
#Tuer un processus (par exemple, avec PID 5678) : import psutil # Terminer le processus avec PID 5678 process = psutil.Process(5678) process.terminate() |
Surveillance du système :
Exemple (Surveillance de l'utilisation du CPU)
1 2 3 4 5 |
import psutil # Utilisation du CPU en pourcentage cpu_usage = psutil.cpu_percent(interval=1) print("Utilisation CPU :", cpu_usage) |
Exemple (Surveillance de l'utilisation de la mémoire)
1 2 3 4 5 |
import psutil # Utilisation de la mémoire memory_usage = psutil.virtual_memory() print("Utilisation de la mémoire :", memory_usage.percent) |
Exemple (Surveillance de l'utilisation du réseau)
1 2 3 4 5 6 |
import psutil # Utilisation du réseau network_io = psutil.net_io_counters() print("Octets reçus :", network_io.bytes_recv) print("Octets envoyés :", network_io.bytes_sent) |
Exemple (Gestion du système de fichiers)
Obtenir des informations sur les partitions de disque :
1 2 3 4 5 6 |
import psutil # Informations sur les partitions de disque disk_partitions = psutil.disk_partitions() for partition in disk_partitions: print(partition.device, partition.mountpoint) |
Obtenir des statistiques d'utilisation du disque :
1 2 3 4 5 6 |
import psutil # Statistiques d'utilisation du disque disk_usage = psutil.disk_usage('/') print("Espace total :", disk_usage.total) print("Espace utilisé :", disk_usage.used) |
Gestion du réseau :
1 2 3 4 5 6 7 8 |
#Obtenir des informations sur les connexions réseau en cours : import psutil # Connexions réseau en cours connections = psutil.net_connections() for conn in connections: print(conn) |
Gestion des utilisateurs :
1 2 3 4 5 6 7 8 |
#Obtenir des informations sur les utilisateurs connectés : import psutil # Utilisateurs connectés users = psutil.users() for user in users: print(user.name, user.terminal) |
4. Liste des méthodes associés au module psutil Python
Un certain nombre de méthodes du module psutil offrent à ce dernier toute la puissance afin d'améliorer l’expérience utilisateur. En voici une liste non exhaustive: :
- psutil.cpu_percent: Renvoie l'utilisation actuelle du CPU en pourcentage.
- psutil.virtual_memory: Renvoie les statistiques sur l'utilisation de la mémoire virtuelle.
- psutil.swap_memory: Renvoie les statistiques sur l'utilisation de la mémoire d'échange (swap).
- psutil.disk_usage: Renvoie l'utilisation du disque sous forme de tuple (total, utilisé, libre).
- psutil.disk_partitions: Renvoie une liste des partitions de disque disponibles.
- psutil.net_io_counters: Renvoie les statistiques sur les E/S réseau.
- psutil.net_connections: Renvoie une liste des connexions réseau établies.
- psutil.pids: Renvoie une liste des identifiants de processus en cours d'exécution.
- psutil.Process(pid).name(): Renvoie le nom du processus avec l'ID spécifié.
- psutil.Process(pid).status(): Renvoie l'état du processus avec l'ID spécifié.
- psutil.Process(pid).cpu_percent: Renvoie l'utilisation du CPU pour le processus spécifié.
- psutil.Process(pid).memory_info: Renvoie les informations sur la mémoire utilisée par le processus.
- psutil.Process(pid).open_files: Renvoie une liste des fichiers ouverts par le processus.
- psutil.Process(pid).threads: Renvoie une liste des threads du processus avec leurs informations.
- psutil.Process(pid).connections: Renvoie une liste des connexions réseau du processus.
- psutil.Process(pid).children: Renvoie une liste des processus enfants du processus spécifié.
Younes Derfoufi
CRMEF OUJDA