Applications concrètes des pipelines Linux
Dans cette dernière étape, vous explorerez quelques applications concrètes des pipelines Linux en analysant des fichiers journaux (log files), en traitant des fichiers de données et en résolvant des tâches courantes d'administration système.
Analyse des fichiers journaux
Les administrateurs système ont souvent besoin d'extraire des informations utiles des fichiers journaux. Utilisons des pipelines pour analyser le fichier server_log.txt :
- Compter les occurrences de chaque niveau de journalisation (log level) (INFO, WARNING, ERROR) :
cd ~/project
cat server_log.txt | grep -o "INFO\|WARNING\|ERROR" | sort | uniq -c
Sortie :
4 INFO
3 ERROR
2 WARNING
- Extraire tous les horodatages (timestamps) et les niveaux de journalisation :
cat server_log.txt | grep -o "\[[0-9-]* [0-9:]*\] [A-Z]*" | head -5
Sortie :
[2023-05-10 08:45:22] INFO
[2023-05-10 09:12:35] ERROR
[2023-05-10 09:14:01] INFO
[2023-05-10 09:14:10] INFO
[2023-05-10 09:30:45] WARNING
Traitement des données CSV
Utilisons des pipelines pour analyser le fichier sales.csv :
- Extraire et compter les produits uniques vendus :
cat sales.csv | tail -n +2 | cut -d',' -f2 | sort | uniq -c
La commande tail -n +2 ignore la ligne d'en-tête du fichier CSV.
Sortie :
2 Keyboard
2 Laptop
2 Monitor
2 Mouse
1 Printer
- Calculer le nombre total d'unités vendues :
cat sales.csv | tail -n +2 | cut -d',' -f3 | paste -sd+ | bc
Sortie :
113
Ce pipeline extrait la troisième colonne (Units), combine toutes les valeurs avec des signes "+", puis utilise la calculatrice bc pour calculer la somme.
Tâches de surveillance du système
Les pipelines Linux sont également utiles pour la surveillance du système et les tâches d'administration :
- Lister les 5 principaux processus consommant le plus de mémoire :
ps aux | sort -k 4 -r | head -6
Cette commande liste les processus triés par la 4ème colonne (utilisation de la mémoire) dans l'ordre inverse et affiche les 6 premières lignes (y compris l'en-tête).
- Trouver tous les fichiers de plus de 10 Mo et les trier par taille :
cd ..
find . -type f -size +10M -exec ls -lh {} \; | sort -k 5 -h
Cette commande affichera nos grands fichiers de test triés par taille. La sortie devrait ressembler à ceci :
-rw-r--r-- 1 labex labex 12M May 10 12:00 ./large_file3.dat
-rw-r--r-- 1 labex labex 15M May 10 12:00 ./large_file2.dat
-rw-r--r-- 1 labex labex 20M May 10 12:00 ./large_file1.dat
Cet exemple montre comment trouver et trier des fichiers par taille. Les fichiers ont été créés lors de la configuration spécifiquement pour montrer comment le filtrage de la taille des fichiers fonctionne sous Linux.
Ces exemples démontrent comment les pipelines Linux peuvent être utilisés pour résoudre efficacement des problèmes concrets. En combinant des commandes simples, vous pouvez créer des flux de travail de traitement de données (data processing workflows) puissants sans écrire de scripts ou de programmes complexes.