Applications pratiques des pipelines Linux
Dans cette étape finale, vous allez explorer quelques applications pratiques des pipelines Linux en analysant des fichiers de journal, en traitant des fichiers de données et en résolvant des tâches courantes d'administration système.
Analyse de fichiers de journal
Les administrateurs système ont souvent besoin d'extraire des informations utiles à partir de fichiers de journal. Créons un fichier de journal d'exemple et utilisons des pipelines pour l'analyser :
cd ~/project
cat > server_log.txt << EOF
[2023-05-10 08:45:22] INFO: Server started
[2023-05-10 09:12:35] ERROR: Database connection failed
[2023-05-10 09:14:01] INFO: Retrying database connection
[2023-05-10 09:14:10] INFO: Database connection established
[2023-05-10 09:30:45] WARNING: High CPU usage detected
[2023-05-10 10:15:30] ERROR: API request timeout
[2023-05-10 10:20:15] INFO: System update available
[2023-05-10 11:05:22] WARNING: Low disk space
[2023-05-10 11:45:18] ERROR: Memory allocation failed
EOF
Maintenant, effectuons quelques opérations d'analyse de journal utiles :
- Compter le nombre d'occurrences de chaque niveau de journal (INFO, WARNING, ERROR) :
cat server_log.txt | grep -o "INFO\|WARNING\|ERROR" | sort | uniq -c
Sortie :
4 INFO
3 ERROR
2 WARNING
- Extraire toutes les horodatages et les niveaux de journal :
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 de données CSV
Le traitement de fichiers CSV (Comma-Separated Values, valeurs séparées par des virgules) est une autre tâche courante. Créons un fichier CSV d'exemple avec des données de ventes :
cat > sales.csv << EOF
Date,Product,Units,Price
2023-01-15,Laptop,10,1200
2023-01-16,Mouse,30,25
2023-01-16,Keyboard,20,45
2023-01-17,Monitor,15,200
2023-01-18,Laptop,5,1200
2023-01-18,Printer,8,300
2023-01-19,Mouse,25,25
EOF
Maintenant, utilisons des pipelines pour analyser ces données de ventes :
- Extraire et compter les produits uniques vendus :
cat sales.csv | tail -n +2 | cut -d',' -f2 | sort | uniq -c
La commande tail -n +2
saute 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 (Unités), combine toutes les valeurs avec des signes "+" et utilise ensuite la calculatrice bc
pour calculer la somme.
Tâches de surveillance système
Les pipelines Linux sont également utiles pour les tâches de surveillance et d'administration système :
- Lister les 5 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 1 Mo dans le répertoire actuel :
find . -type f -size +1M -exec ls -lh {} \; | sort -k 5 -h
Cette commande trouve les fichiers de plus de 1 Mo, exécute ls -lh
sur chacun d'eux et trie la sortie par taille de fichier.
Ces exemples démontrent comment les pipelines Linux peuvent être utilisés pour résoudre efficacement des problèmes réels. En combinant des commandes simples, vous pouvez créer des flux de traitement de données puissants sans écrire de scripts ou de programmes complexes.