Automatisation des flux de travail de la commande top
Bien que la commande top
offre une interface interactive puissante pour surveiller les processus système, il peut arriver que vous souhaitiez automatiser son utilisation ou l'intégrer dans un script. Cela peut être particulièrement utile pour générer des rapports, déclencher des alertes ou intégrer la commande top
dans des flux de travail de gestion système plus larges.
Capture de la sortie de la commande top
Une façon d'automatiser la commande top
consiste à capturer sa sortie et à la enregistrer dans un fichier ou à la transmettre à d'autres commandes pour un traitement ultérieur. Vous pouvez le faire en utilisant la commande suivante sur un système Ubuntu 22.04 :
top -b -n 1 > top_output.txt
L'option -b
indique à top
de fonctionner en mode "batch" (lot), ce qui signifie qu'il affichera les informations sur les processus puis se terminera, au lieu de fonctionner de manière interactive. L'option -n 1
indique à top
de s'exécuter seulement une seule fois, capturant ainsi une capture instantanée de l'état actuel du système.
Vous pouvez ensuite utiliser le fichier top_output.txt
enregistré pour une analyse plus approfondie ou l'intégrer à d'autres outils et scripts.
Écriture de scripts pour les flux de travail de la commande top
Pour aller plus loin dans l'automatisation, vous pouvez créer des scripts shell qui utilisent la commande top
pour effectuer des tâches plus complexes. Par exemple, vous pourriez écrire un script qui :
- Capture la sortie de la commande
top
dans un fichier.
- Analyse la sortie pour identifier les processus qui consomment le plus de ressources.
- Envoie une alerte ou une notification si certains seuils sont dépassés.
- Termine automatiquement ou ajuste la priorité de processus spécifiques.
Voici un exemple de script qui illustre ce flux de travail :
#!/bin/bash
## Capture la sortie de la commande top
top -b -n 1 > top_output.txt
## Analyse la sortie pour identifier les processus qui consomment le plus de CPU
top_cpu_processes=$(cat top_output.txt | awk 'NR>7{print $1, $9}' | sort -nr | head -n 5)
## Vérifie si un processus consomme plus de 20 % du CPU
if echo "$top_cpu_processes" | awk '{if ($2 > 20) print $1}'; then
echo "Alerte : Une forte utilisation du CPU a été détectée. Processus consommateurs de CPU les plus importants :"
echo "$top_cpu_processes"
## Ajoutez votre logique d'alerte/notification ici
fi
En automatisant les flux de travail de la commande top
, vous pouvez créer des solutions de surveillance et de gestion de système plus robustes et proactives, adaptées à vos besoins spécifiques sur un système Ubuntu 22.04.